专栏首页Hadoop实操如何在非安全的CDH集群中部署Jupyter并集成Spark2

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

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包

[root@cdh04 bin]# /opt/cloudera/anaconda3/bin/pip show jupyter

(可左右滑动)

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

[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter-notebook --generate-config

(可左右滑动)

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

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

[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,在文件的默认增加如下配置:

#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服务

[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

[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/jupyter kernelspec list

(可左右滑动)

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

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

[root@cdh04 ~]# /opt/cloudera/anaconda3/bin/pip install --upgrade toree

(可左右滑动)

安装的toree版本为0.2.0

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

[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生成命令如下:

[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文件、统计行数并输出第一行内容

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角色

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0740-1.6.1-CDSW中定制docker无法使用Jupyter Notebook问题

    当使用该引擎启动Session时,只有Workbench选项,没有Jupyter Notebook选项

    Fayson
  • Python3环境通过JDBC访问非Kerberos环境的Hive

    在前面Fayson介绍了在Python2的环境下《如何使用Python Impyla客户端连接Hive和Impala》,本篇文章Fayson主要介绍在Pytho...

    Fayson
  • Python3通过JDBC访问非Kerberos环境的Impala

    在前面Fayson介绍了在Python2的环境下《如何使用Python Impyla客户端连接Hive和Impala》及《Python3环境通过JDBC访问非K...

    Fayson
  • 100多个Jupyter精选资源合集!GitHub高赞,包括项目、库、教程等11个方面

    Jupyter,一个开源的Web应用程序,能在网页页面中直接编写代码、运行代码、显示代码结果、编写说明文档等等。

    量子位
  • Pycharm 中安装及使用 Jupyter (图文详解)

    Pycharm 更新了对 Jupyter 的功能支持,结合 IntelliJ 的自动补全代码,自动格式化代码,执行调试,版本控制,以及大量的插件支持。

    白墨石
  • 南京林业大学正版win10系统安装

    用户7010445
  • 申请微信小游戏账号

    https://mp.weixin.qq.com/cgi-bin/wx?token=&lang=zh_CN

    悟空聊架构
  • Provenance Mining:终端溯源数据挖掘与威胁狩猎

    为应对高级持续性威胁(AdvancedPersistent Threat,APT)、利益驱动的内部员工威胁,面向主动防御的威胁狩猎(ThreatHunting,...

    绿盟科技研究通讯
  • 帕累托图(主次图)绘制方法(Excel绘制图表系列课程)

    有朋友让我快点、马上、立刻、最先分享帕累托图的绘制方法。什么是帕累托图?主要想表达何种含义呢?让我们慢慢聊。 帕累托图(Pareto chart)由来 是以意大...

    用户1332619
  • day40(多线程) - 多线程、基于多线程(多客户端)的tcp通信

    少年包青菜

扫码关注云+社区

领取腾讯云代金券