在MRS中使用jupyter notebook

举报
小玛 发表于 2018/12/12 22:03:09 2018/12/12
【摘要】 如果能配合jupyter notebook使用pyspark,无论是机器学习,数据探索,还是ETL应用的开发,开发效率直接起飞。本文就来介绍配合jupyter notebook来使用pyspark。

如果能配合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端口的访问


image.png


好了,配置已经完成了。


先来试一下jupyter notebook。

jupyter notebook --allow-root


访问弹性ip:9999,输下刚才填写的密码,就能看到亲切的jupyter notebook页面。

image.png


创建一个notebook,打印下python的哲学看看。

image.png


正常的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读个文件试试。

image.png


另外,yarn上也能看到我们提交的pyspark应用

image.png


这样,我们就可以用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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。