一、什么是Zeppelin
Apache Zeppelin 是一个让交互式数据分析变得可行的基于网页的开源框架。Zeppelin提供了数据分析、数据可视化等功能,同时支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等等。
zeppelin的核心功能用一句话总结就是:支持多语言混合的REPL(Read-Evaluation-Print-Loop)。
这个核心功能的价值体现在:
站在使用者的角度,意味着可以在一个Note中混合使用多种语言。用户可以根据需要完成的任务的类型,选择最合适的语言来实现,不再受限于单个语言的特性。
站在管理者的角度,意味着使得统一工具环境成为可能。一个数据分析团队中,各成员由于擅长的语言不同,可能需要同时维护多种环境,如R、Python远程桌面开发环境,R和Python都是通过第三方扩展包进行扩展的,成员熟练使用的包,也有所不同,给运维造成了较大压力。实现一个集中式的分析工具,在服务端集中于一处,统一配置R、Python、Spark、Hadoop、Hive等开发环境,显著降低运维成本。
二、Zeppelin的安装使用
2.1、Zeppelin的安装
登录Zeppelin官网,进入下载页面下载zeppelin版本,我这里使用的是Zeppelin-0.9.0。下载完成后把包传到服务器上,解压缩。然后需要修改一些配置。
复制zeppelin-env.sh.template重命名为zeppelin-env.sh,编辑文件,指定JAVA_HOME。如果需要可以指定Zeppelin的端口
export JAVA_HOME=/opt/java/jdk1.8
export ZEPPELIN_PORT=8079
复制zeppelin-site.xml .template重命名为zeppelin-site.xml ,如果修改了自定义端口,需要修改zeppelin.server.port属性与ZEPPELIN_PORT属性保持一致
<property>
<name>zeppelin.server.port</name>
<value>8079</value>
<description>Server port.</description>
</property>
如果需要设置权限,zeppelin是使用shiro做用户权限管理的,拷贝shiro.ini.template为shiro.ini,加入用户和权限
[users]
# List of users with their password allowed to access Zeppelin.
# To use a different strategy (LDAP / Database / ...) check the shiro doc at http://shiro.apache.org/configuration.html#Configuration-INISections
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
wmz = wmz,admin
启动zeppelin
[root@henghe-048 bin]#
[root@henghe-048 bin]# cd /data/bigdata/zeppelin-0.9.0/bin/
[root@henghe-048 bin]# ./zeppelin-daemon.sh start
Zeppelin start [ OK ]
[root@henghe-048 bin]#
[root@henghe-048 bin]# jps
21366 Jps
21303 ZeppelinServer
[root@henghe-048 bin]#
随后打开浏览器进入指定url页面即可
2.2、Zeppelin的使用
首页页面点击NoteBook可以查看当前已有的notebook或者可以创建一个新的notebook
在notebook界面可以数据想要执行的代码段、sql语句等,点击paragraph右上角的run按钮即可执行并展示执行结果,以sql为例,结果的展示出了表格以外,还可以以饼状图、柱状图、折线图、散点图等方式展示
点击右上角的下拉菜单可以进入Interpreter界面,在该界面可以创建解释器。或者修改已有解释器的设置,以jdbc为例,在jdbc解释器页面可以修改一些jdbc参数
有关zeppelin架构的内容,请看我另一篇文章