2016-07-20 42 views
0

我有1个WorkerNode火花HDInsight群集。我需要在Pyspark Jupyter中使用scikit-neuralnetwork和vaderSentiment模块。jupyter pyspark输出:无模块名sknn.mlp

安装库使用以下命令:

cd /usr/bin/anaconda/bin/ 

export PATH=/usr/bin/anaconda/bin:$PATH 

conda update matplotlib 

conda install Theano 

pip install scikit-neuralnetwork 

pip install vaderSentiment 

接下来,我打开pyspark终端,我能够成功导入模块。下面的截图。现在

enter image description here

,我打开Jupyter Pyspark笔记本:

enter image description here

我想补充,我能够从Jupyter进口预装模块,如 “进口大熊猫”

安装进入:

[email protected]:/usr/bin/anaconda/bin$ sudo find/-name "vaderSentiment" 
/usr/bin/anaconda/lib/python2.7/site-packages/vaderSentiment 
/usr/local/lib/python2.7/dist-packages/vaderSentiment 

对于预安装的模块:

[email protected]:/usr/bin/anaconda/bin$ sudo find/-name "pandas" 
/usr/bin/anaconda/pkgs/pandas-0.17.1-np19py27_0/lib/python2.7/site-packages/pandas 
/usr/bin/anaconda/pkgs/pandas-0.16.2-np19py27_0/lib/python2.7/site-packages/pandas 
/usr/bin/anaconda/pkgs/bokeh-0.9.0-np19py27_0/Examples/bokeh/compat/pandas 
/usr/bin/anaconda/Examples/bokeh/compat/pandas 
/usr/bin/anaconda/lib/python2.7/site-packages/pandas 

sys.executable路径在两个Jupyter和终端相同。

print(sys.executable) 
/usr/bin/anaconda/bin/python 

任何帮助将不胜感激。

回答

1

的问题是,当你在headnode(VM的一个)安装它,你是不是所有的其他虚拟机(工作节点)上安装它。当创建了Jupyter的Pyspark应用程序时,它将以YARN集群模式运行,因此应用程序主机在随机工作节点中启动。

安装在所有工作节点的库将创建一个运行对工作节点,并安装必要的库脚本行为的一种方法: https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-customize-cluster-linux/

请注意是有集群中的两个Python安装,你必须明确地引用Anaconda安装。安装scikit-neuralnetwork会是这个样子:

sudo /usr/bin/anaconda/bin/pip install scikit-neuralnetwork 

这样做的第二个方法是简单地ssh到从headnode的workernodes。首先,进入headnode,然后找到Ambari的工作节点IP:https://YOURCLUSTER.azurehdinsight.net/#/main/hosts。然后,ssh 10.0.0.#并自己为所有工作节点执行安装命令。

我没有这scikit-neuralnetwork,虽然它不正确导入,它抛出说,它不能创建在〜/ .theano文件。由于YARN作为nobody用户运行Pyspark会话,因此Theano无法创建其配置文件。做一点挖掘,我发现有一种方法可以改变Theano写/查找配置文件的位置。请在安装时注意:http://deeplearning.net/software/theano/library/config.html#envvar-THEANORC

忘了提及,要修改env var,您需要在创建pyspark会话时设置变量。在Jupyter笔记本中执行此操作:

%%configure -f 
{ 
    "conf": { 
     "spark.executorEnv.THEANORC": "{YOURPATH}", 
     "spark.yarn.appMasterEnv.THEANORC": "{YOURPATH}" 
    } 
} 

谢谢!

+0

这对你有帮助吗?请接受答案,如果它:) – aggFTW

1

解决这个简单的方法是:

  1. 创建一个bash脚本

    CD的/ usr/bin中/蟒蛇/斌/

    出口PATH =的/ usr/bin中/蟒蛇/斌:$ PATH

    畅达更新matplotlib

    畅达安装Theano

    PIP安装scikit-neuralnetwork

    PIP安装vaderSentiment

  2. 复制上面创建bash脚本在Azure存储帐户的任何容器。

  3. 在创建HDInsight Spark群集时,使用脚本操作并在URL中提及上述路径。例如:https://开头SA-帐户名 .blob.core.windows.net/容器名称/ path-of-installation-file.sh
  4. 两个HeadNodes和WorkerNodes安装它。
  5. 现在,打开Jupyter,你应该能够导入模块。