【问题标题】:Why do Python scripts on HDInsight fail with 'No module named numpy'?为什么 HDInsight 上的 Python 脚本会失败并显示“没有名为 numpy 的模块”?
【发布时间】:2016-05-02 15:45:56
【问题描述】:

我已经使用Install and use Spark 1.0 on HDInsight Hadoop clusters 中所述的脚本操作 创建了一个带有Apache Spark 的HDInsight 群集:

您可以使用 脚本操作 集群自定义在 Hadoop on HDInsight 中的任何类型的集群上安装 Spark。脚本操作允许您仅在创建集群时运行脚本来自定义集群。如需更多信息,请参阅Customize HDInsight cluster using script action

我已经运行了一个基本的 Python(字数统计示例)脚本,但是当我启动一个使用 NumPy 的 Python 脚本时,我收到了这个导入器错误:'No module named numpy' 在节点上引发。

为什么我不能导入包,因为 NumPy 是(应该是)开箱即用地安装在 HDInsight 群集上的?有没有办法在节点上安装 NumPy? HDInsight 不允许您对节点进行任何访问。

【问题讨论】:

    标签: python azure apache-spark azure-hdinsight


    【解决方案1】:

    您可以使用脚本操作将自定义包应用到 HDInsight 群集中的所有数据节点。文档位于http://acom-sandbox.azurewebsites.net/en-us/documentation/articles/hdinsight-hadoop-customize-cluster/

    粗略地说,您要做的是在 PowerShell 中创建集群并包含以下内容:

    $config = Add-AzureHDInsightScriptAction -Config $config –Name MyScriptActionName –Uri http://uri.to/scriptaction.ps1 –Parameters MyScriptActionParameter -ClusterRoleCollection HeadNode,DataNode
    

    http://uri.to/scriptaction.ps1 处的脚本可以轻松存储在 blob 存储中,并在指定的节点类型上运行。这是您用来安装任何自定义 python(或其他)包的脚本。

    【讨论】:

      【解决方案2】:

      您可以使用答案中提到的自定义脚本,但是以下命令在 Hbase - Hdinsight Cluster 中对我有用。 (它也应该在 Hadoop - Hdinsight 集群中工作。)

      sudo apt-get install python-numpy
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 2021-04-04
        • 2021-08-17
        • 1970-01-01
        • 2021-11-07
        • 2016-09-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多