2015-07-21 74 views
2

我有一臺JupyterHub(Python2,Python3,R和Bash內核)的機器。我有Spark(斯卡拉)和PySpark課程。我甚至可以在交互的IPython筆記本內使用PySpark用以下命令:使Pyspark工作在jupyterhub

IPYTHON_OPTS="notebook" $path/to/bin/pyspark 

(這個開放Jupyter筆記本電腦和裏面Python2我可以用星火)

,但我不能讓PySpark內JupyterHub工作。

the spark kernel比我真正需要的更多。

我只需要在JupyterHub內的Pyspark。任何建議?

謝謝。

回答

0

我沒有與木星樞紐嘗試,但這種方法幫助我與其他工具(如Spyder的)

我瞭解木星服務器本身就是一個python腳本。 這樣: 副本(或重命名)jupyterhubjupyterhub.py

運行:

spark-submit jupyterhub.py

(替換這些文件的完整路徑火花提交和jupyterhub.py)

+0

我認爲spark-submit僅適用於jar文件。 – arj

+0

它也適用於python腳本(至少在新版本中) –

+0

我明白了。因此,通過這種方式,我在Spark Cluster(本地,獨立,mesos或yarn)中運行JupyterHub本身,並且假設打開一個新的python筆記本將加載sparkcontext和spark API。這樣對嗎? 哦,我從斌/ pyspark看到準備的變量後執行 的exec「$ SPARK_HOME」 /斌/火花提交pyspark殼主「$ @」 – arj

2

你可以像往常一樣啓動jupyter,並將以下代碼添加到代碼頂部:

import sys 
sys.path.insert(0, '<path>/spark/python/') 
sys.path.insert(0, '<path>/spark/python/lib/py4j-0.8.2.1-src.zip') 
import pyspark 
conf = pyspark.SparkConf().set<conf settings> 
sc = pyspark.SparkContext(conf=conf) 

,並根據您的需要更改傾斜支架中的零件。

+0

我想有一個辦法可以讓JupyterHub initalize透明SparkContext,就像PySpark一樣。也許解決方案是用更多的argv調用Python內核。 – arj

+0

導出PYTHONPATH並禁用mediator.py中的安全控制的結果相同。 – arj

+1

你能更具體嗎?有可能把它放在'profile'中? – nanounanue

2

您需要配置pyspark內核。

在我的服務器位於jupyter內核:

/usr/local/share/jupyter/kernels/ 

您可以通過一個新的目錄中創建一個新的內核:

mkdir /usr/local/share/jupyter/kernels/pyspark 

然後創建kernel.json文件 - 我粘貼我作爲參考:

{ 
"display_name": "pySpark (Spark 1.6.0)", 
"language": "python", 
"argv": [ 
    "/usr/local/bin/python2.7", 
    "-m", 
    "ipykernel", 
    "-f", 
    "{connection_file}" 
], 
"env": { 
    "PYSPARK_PYTHON": "/usr/local/bin/python2.7", 
    "SPARK_HOME": "/usr/lib/spark", 
    "PYTHONPATH": "/usr/lib/spark/python/lib/py4j-0.9-src.zip:/usr/lib/spark/python/", 
    "PYTHONSTARTUP": "/usr/lib/spark/python/pyspark/shell.py", 
    "PYSPARK_SUBMIT_ARGS": "--master yarn-client pyspark-shell" 
} 
} 

調整路徑a nd python版本和你的pyspark內核是很好的去。

+0

JupyterHub從我寫這個問題的時候改變了很多。我會嘗試你的解決方案。謝謝 – arj

+0

如有任何問題請留言,我會盡力幫忙。 – lmtx

0

我創建了一個公共gist來配置spark2.x和jupyterhub & cdh5.13集羣。