您的位置:首页 > 编程语言 > Python开发

在集群上的pyspark中配置ipython notebook,实现网页远程调用。

2018-03-11 16:20 381 查看
接着之前的在服务器上远程网页调用python,现实中,大数据集无法单服务器处理时,需要调用集群的pyspark,又需要图形显示和脚本运行调试等的方便性,这时也可以类似服务器远程使用ipython notebook一样。

前提是集群上已经安装了pyspark和ipython notebook,我自己的是已经安装了Anaconda。在此只说配置。

基本安装步骤:

1、首先创建一个与PySpark一起使用的IPython配置文件。

ipython profile create pyspark


这应该已经创建了配置文件目录~/.ipython/profile_pyspark/ 并且生成包含ipython_notebook_config.py的3个文件(有的会没有该文件,就自行创建即可)。

2、 生成密码

直接输入命令ipython,打开ipython,创建一个密文的密码:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:

sha1:****


把生成的密文复制下来

3、修改默认配置文件ipython_notebook_config.py

编辑文件

vim ~/.ipython/profile_pyspark/ipython_notebook_config.py


进行如下修改:

c.NotebookApp.ip='*'
c.NotebookApp.password = 'sha1:****刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8542 #随便指定一个端口


4、创建~/.ipython/profile_pyspark/startup/00-pyspark-setup.py

文件内容如下:

import os
import sys

spark_home = os.environ.get('SPARK_HOME', None)
if not spark_home:
raise ValueError('SPARK_HOME environment variable is not set')
sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.1-src.zip'))#py4j-0.8.1-src.zip的版本自己切换目录ls查询后,做相应修改
execfile(os.path.join(spark_home, 'python/pyspark/shell.py'))


5、设置环境变量

vim ~/.bashrc


添加内容如下(路径根据自己集群路径修改哈):

export SPARK_HOME='/opt/cloudera/parcels/CDH/lib/spark'
export PYSPARK_SUBMIT_ARGS='--master yarn --deploy-mode client --num-executors 24 --executor-memory 10g --executor-cores 5'
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS="notebook" (去处此参数,可调用 ipython)


然后source ~/.bashrc,就可以通过启动 pyspark 来启动 IPython Notebook 了.

6、启动使用

直接输入 pyspark

或者(若没有对默认配置修改,调用自己创建的配置就只能)

ipython notebook --profile=pyspark --config=/home/dgbd/.ipython/profile_pyspark/ipython_notebook_config.py


注:ipython notebook 都可用jupyter notebook 替换。

不推荐用root用户启动,如果非要用root用户启动需加–allow-root

ipython notebook --allow-root --config=配置文件路径


或者

jupyter notebook --allow-root --config=配置文件路径


启动jupyter notebook后,在远程电脑中打开浏览器输入10.43.83.196:8542(ip和端口号)就可以远程访问

其他问题:

我自己在两个集群上都做了配置(1、公司自己集群,2、项目离线环境集群)1成功了,2老是失败。

报错的最后反馈信息是

Exception:Java gateway process exited before sending the driver its port number


网上查了好久,有人说是配置问题,有人说是java版本问题。一直没有找到解决办法。谁有解决的经验欢迎留言

另外,成功的是python3版本,失败的是python2,系统都是centos6.5。集群版本也一样cdh5.9,有些组建的配置内容不一样。节点数目和配置不一样。

可以参考的一些资料:

http://blog.csdn.net/u012432611/article/details/51225555

http://blog.csdn.net/lsshlsw/article/details/49953455

http://blog.csdn.net/sadfasdgaaaasdfa/article/details/47090513

http://blog.csdn.net/dataningwei/article/details/64583468

https://www.cnblogs.com/NaughtyBaby/p/5469469.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: