为什么HDInsight上的Python脚本失败并且“没有名为numpy的模块”?

时间:2014-12-23 15:35:47

标签: python azure apache-spark hdinsight

我使用<{>}脚本操作创建了一个Apache Spark的HDInsight群集,如Install and use Spark 1.0 on HDInsight Hadoop clusters中所述:

  

您可以使用脚本操作群集自定义在HDInsight上的Hadoop中的任何类型的群集上安装Spark。只有在创建群集时,脚本操作才允许您运行脚本来自定义群集。有关详细信息,请参阅Customize HDInsight cluster using script action

我运行了一个基本的Python(字数统计样本)脚本,但是当我启动一个使用NumPy的Python脚本时,我得到了这个导入器错误:节点上出现了'No module named numpy'

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

2 个答案:

答案 0 :(得分:3)

您可以使用“脚本操作”将自定义程序包应用于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(或其他)软件包的脚本。

答案 1 :(得分:1)

您可以使用答案中提到的自定义脚本,但是下面的命令在Hbase - Hdinsight Cluster中适用于我。 (它应该适用于Hadoop - Hdinsight Cluster。)

sudo apt-get install python-numpy