前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在非安全的CDH集群中部署Jupyter并集成Spark2

如何在非安全的CDH集群中部署Jupyter并集成Spark2

作者头像
Fayson
发布2018-09-29 10:56:50
2.5K0
发布2018-09-29 10:56:50
举报
文章被收录于专栏:Hadoop实操Hadoop实操

1.文档编写目的


Jupyter Notebook是一个Web应用程序,允许你创建和分享,包含实时的代码,可视化和解释性文字。常用于数据的清洗和转换、数值模拟、统计建模、机器学习和更多,支持40多种语言。python ,R,go,scala等。Jupyter Notebook是Python中的一个包,在Fayson前面的文章《如何在CDH集群上部署Python3运行环境及运行Python作业》介绍了在集群中部署Anaconda,该Python环境自带了Jupyter的包。本篇文章Fayson主要介绍如何在非安全的CDH集群中部署Jupyter Notebook并与Spark2集成。

  • 测试环境

1.CM5.15.0和CDH版本5.14.2

2.Jupyter版本为1.0.0

3.Python3.6.5

2.Jupyter部署及配置


1.检查Python环境中是否已安装了Jupyter包

代码语言:javascript
复制
[root@cdh04 bin]# /opt/cloudera/anaconda3/bin/pip show jupyter

(可左右滑动)

2.生成Jupyter Notebook的配置文件,命令如下:

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter-notebook --generate-config

(可左右滑动)

配置文件默认生成在当前用户的根目录的./jupyter/下。

3.使用python命令生成一个加密的密码

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from notebook.auth import passwd
>>> passwd()
Enter password: 
Verify password: 
'sha1:308253dee301:d159c07a06eacab4573cd11c17ca1987bef9259e'
>>> 

(可左右滑动)

生成的密码会在下一步的配置文件中使用,主要是校验用户访问Jupyter服务。

4.修改Jupyter的配置文件/root/.jupyter/jupyter_notebook-config.py,在文件的默认增加如下配置:

代码语言:javascript
复制
#jupyter监听的ip地址,可以配置为"*"监听所有
c.NotebookApp.ip = 'cdh04.fayson.com'
#jupyter服务监听端口
c.NotebookApp.port = 8888
#jupyter服务启动时是否打开浏览器
c.NotebookApp.open_browser = False
#访问Jupyter服务时用于验证的密码,使用python命令生成的秘钥
c.NotebookApp.password = 'sha1:308253dee301:d159c07a06eacab4573cd11c17ca1987bef9259e'

(可左右滑动)

5.启动Jupyter服务

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter-notebook --allow-root

(可左右滑动)

如上显示则表示Jupyter服务启动成功。

6.在浏览器访问http://cdh04.fayson.com:8888

提示输入密码(即在配置文件中配置的密码),点击登录

如上就完成了Jupyter服务的部署。

3.Spark2集成


Spark支持Sacla、Python、R语言,下面Fayson主要使用Apache Toree来实现Jupyter与CDH集群中的Spark2集成,通过Toree来生成集群Spark2的不同语言的内核。

1.通过如下命令查看Jupyter中默认支持的Kernel

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter kernelspec list

(可左右滑动)

上图可以看到默认Jupyter只有python3的kernel

2.在Python中安装toree包,执行命令如下:

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/pip install --upgrade toree

(可左右滑动)

安装的toree版本为0.2.0

3.使用toree安装Spark2 Scala语言的kernel,命令如下:

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter toree install --spark_home=/opt/cloudera/parcels/SPARK2/lib/spark2

(可左右滑动)

查看Jupyter的Kernel

上图显示多了一个apache_toree_scala的kernel

4.使用上一步命令默认的只安装了Spark Scala的Kernel,那pyspark、sparkr及SparkSQL的Kernel生成命令如下:

代码语言:javascript
复制
[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter toree install --interpreters=PySpark,SparkR,SQL --spark_home=/opt/cloudera/parcels/SPARK2/lib/spark2

(可左右滑动)

查看Jupyter的Kernel

5.以上步骤就完成了Jupyter与Spark2的集成,重启Jupyter服务

4.Jupyter使用


1.登录Jupyter

2.点击“New”新建一个Notebook,这里Fayson选择“Apache Toree- PySpark”

打开新的创建

3.运行PySpark测试代码,读取HDFS的/tmp/test.txt文件、统计行数并输出第一行内容

代码语言:javascript
复制
textFile = spark.read.text("/tmp/test.txt")
textFile.count()
textFile.first()

(可左右滑动)

运行成功结果显示如下:

也可以逐行的运行代码

4.查看CDH集群Yarn的8088界面作业

5.总结


1.使用Anaconda安装的Python默认带有Jupyter,不需要额外的安装Jupyter包

2.Jupyter与Spark2集成时使用到Apache Toree实现比较方便,不需要过多的关心Kernel的配置

3.在部署Jupyter的节点,需要安装Spark的Gateway角色

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档