在MRS中使用jupyter notebook
如果能配合jupyter notebook使用pyspark,无论是机器学习,数据探索,还是ETL应用的开发,开发效率直接起飞。本文就来介绍配合jupyter notebook来使用pyspark。
首先,安装jupyter notebook
pip install jupyter notebook
安装好jupyter notebook后,确认已经把python3的bin目录添加到环境变量里。(使用virtualenv创个env更好)
echo ‘export PATH=$PATH:/opt/Bigdata/python3/bin/’ >> /etc/profile
jupyter notebook会起一个web服务,通过网页,可以执行python脚本,所以存在较大的安全风险。这里,我们设一个密码,作为保障。
我们需要生成一个密文密码,放到jupyternotebook的配置文件中。
生成密码,复制得到的'sha1:xxxxx'串
[root@node-master1-fLbJX spark]# ipython Python 3.7.1 (default, Dec 12 2018, 14:48:34) Type 'copyright', 'credits' or 'license' for more information IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: from notebook.auth import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:0055004bc868:573b09f1826c63dd42631611ad01d7a4aa14eed1'
生成jupyter notebook的配置文件
jupyter notebook --generate-config
修改生成的配置文件
vim ~/.jupyter/jupyter_notebook_config.py
插入下面的内容
c.NotebookApp.ip='*' # 设置成所有ip皆可访问 c.NotebookApp.password = u'sha1:0055004bc868:573b09f1826c63dd42631611ad01d7a4aa14eed1' # 将前面生成的密文密码复制到这里 c.NotebookApp.open_browser = False # 禁止自动打开浏览器 c.NotebookApp.port = 9999 # 随便指定一个端口,这里设置为9999端口 c.NotebookApp.allow_remote_access = True
当然别忘了修改安全组规则,放开对9999端口的访问
好了,配置已经完成了。
先来试一下jupyter notebook。
jupyter notebook --allow-root
访问弹性ip:9999,输下刚才填写的密码,就能看到亲切的jupyter notebook页面。
创建一个notebook,打印下python的哲学看看。
正常的python程序可以了,那么pyspark呢?
很简单,只要以jupyter-notebook的方式,启动pyspark即可。(执行下面命令前,先关掉前面已经启动的jupyter notebook进程)
PYSPARK_DRIVER_PYTHON=/opt/Bigdata/python3/bin/jupyter-notebook PYSPARK_DRIVER_PYTHON_OPTS="--allow-root" pyspark --master yarn --executor-memory 2G --driver-memory 1G
再次弹性ip:9999,创建个新的notebook,随便用spark读个文件试试。
另外,yarn上也能看到我们提交的pyspark应用
这样,我们就可以用jupyter notebook来调试我们的程序,调试完以后,封装成python脚本,用spark-submit来提交,在集群上稳定运行。
参考
https://www.cnblogs.com/zhanglianbo/p/6109939.html
https://blog.csdn.net/njzhujinhua/article/details/79441217
https://blog.csdn.net/u013019431/article/details/80776662
- 点赞
- 收藏
- 关注作者
评论(0)