使用Zeppelin进行交互式分析

对于公司的数据分析人员来说,虽然spark shell提供了交互式数据查询的功能,但是他们更喜欢使用的是基于web的notebook类工具。我们采用Zepplin作为Spark的交互式数据分析工具。

1、下载zeppelin安装包

下载地址:http://zeppelin.apache.org/download.html

选择图中所示的版本:

下载安装包到~/software目录下。(~代表用户主目录)

2、安装和配置zeppelin

2.1 将下载的安装包解压缩到~/bigdata目录下,并改名为zeppelin-0.8.0:

   $ cd ~/bigdata
   $ tar xvf ~/software/zeppelin-0.8.0-bin-all.tgz
   $ mv zeppelin-0.8.0-bin-all zeppelin-0.8.0 

2.2 配置环境变量:

   $ cd
   $ sudo gedit /etc/profile 

在文件最后,添加如下内容:

   export ZEPPELIN_HOME=/home/hduser/bigdata/zeppelin-0.8.0
   export PATH=$PATH:$ZEPPELIN_HOME/bin 

保存文件并关闭。

2.3 执行/etc/profile文件使得配置生效:

   $ source /etc/profile

2.4 打开conf/zeppelin-env.sh文件:(默认没有,从模板复制一份)

   $ cd ~/bigdata/zeppelin-0.8.0/conf
   $ cp zeppelin-env.sh.template zeppelin-env.sh
   $ gedit zeppelin-env.sh

在文件最后添加如下两行内容:

   export JAVA_HOME=/usr/local/jdk1.8.0_162
   export SPARK_HOME=/home/hduser/bigdata/spark-2.3.2 

2.5 打开zeppelin-site.xml文件:(默认没有,从模板复制一份)

   $ cd ~/bigdata/zeppelin-0.8.0/conf
   $ cp zeppelin-site.xml.template zeppelin-site.xml
   $ gedit zeppelin-site.xml 

修改如下两个属性,设置新的端口号9090和9443,以避免和Spark Web UI的端口造成冲突:

<property>
  <name>zeppelin.server.port</name>
  <value>9090</value>
  <description>Server port.</description>
</property>

<property>
  <name>zeppelin.server.ssl.port</name>
  <value>9443</value>
  <description>Server ssl port. (used when ssl property is set to true)</description>
</property> 

3、启动zeppelin服务

在终端窗口中,执行以下命令,启动zeppelin服务:

   $ zeppelin-daemon.sh start 

4、配置Spark解释器

说明:如果是使用Spark local模式,此一步骤省略。如果是使用Spark standalone模式,需要配置Spark解释器。

4.1 首先启动浏览器,在浏览器地址栏输入:http://192.168.190.128:9090/,打开访问界面,如下图。点击右上角的小三角按钮,打开下拉菜单,点击"Interpreter"菜单项,打开解释器配置界面。

4.2 打开的解释器配置界面如下图所示。按图中所示找到spark解释器,然后修改master属性值为spark://master:7077(这实际上是连接到的集群管理器,我们这里使用的是spark standalone模式。这相当于启动Spark Shell时指定--master参数),然后单击【Save】按钮保存。其它参数酌情设置。

5、配置PySpark解释器

说明:如果是使用PySpark local模式,此一步骤省略。如果是使用PySpark standalone模式,需要配置Spark解释器。

5.1 首先启动浏览器,在浏览器地址栏输入:http://192.168.190.128:9090/,打开访问界面,如下图。点击右上角的小三角按钮,打开下拉菜单,点击"Interpreter"菜单项,打开解释器配置界面。

5.2 打开的解释器配置界面如下图所示。按图中所示找到spark解释器,然后修改master属性值为spark://master:7077(这实际上是连接到的集群管理器,我们这里使用的是spark standalone模式。这相当于启动Spark Shell时指定--master参数),然后单击【Save】按钮保存。其它参数酌情设置。

6、创建和notebook文件

6.1 回到浏览器zeppelin首页,点击按钮,创建一个新的notebook文件,如下图所示:

6.2 然后在弹出的创建窗口,填写相应信息,然后单击【Create】按钮即可:

7、执行Spark交互式操作-Scala语言

说明:如果是在standalone模式下使用Zeppelin,请先启动Spark集群。

在新打开的notebook界面,执行Spark代码,如下图所示:

8、执行Spark交互式操作-Python语言

8.1 新创建一个notebook。

8.2 在新打开的notebook界面,执行Python代码。需要在第一行键入%pyspark,以告诉zeppelin使用pyspark解释器。如下图所示:

9、关闭zeppelin服务

在终端窗口中,执行以下命令,停止zeppelin服务:

   $ zeppelin-daemon.sh stop 

《PySpark原理深入与编程实战》