2015-07-21 76 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集群。