2016-07-20 41 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,你應該能夠導入模塊。