本地部署Zeppelin集成Kylin制作数据分析

通过Kylin自带的简单图表展示来进行数据分析的你是否觉得还不够过瘾?想在酷炫的仪表盘上进行数据分析?今天就给大家带来一款上手较快,简单易用的数据驱动式Notebook工具——Apache Zeppelin。将Zeppelin与Kylin 集成后,你就可以通过它来定制你的数据可视化报告,更直观地体验Kylin的分析“神”速啦~

Kylin一样, ApacheZeppelin也是 Apache 软件基金会的顶级项目,是一款基于Web的Notebook(类似于IPython的Notebook),支持友好交互式的数据分析体验,原生就支持Spark、Scala、SQL、Shell、Markdown等编程或脚本语言,可以访问其官方网站 Apache Zeppelin 了解更多的信息。

安装Zeppelin

Zeppelin也有一套类似Kylin的可插拔框架机制,为不同的编程或脚本语言提供对应的解释器接口,实际使用过程中通过(%+解释器名称)来识别,因此在下载页面可看到有两个不同的版本:

  • all 版本:软件包里面包含Zeppelin支持的所有编程语言的解释器。
  • netinst 版本:软件包里面只包含了Spark、Shell等基础编程语言的解释器,其它语言解释器可按需安装。netinst的含义即是通过网络安装。

建议下载 netinst 版本的软件包,其它编程或脚本语言可通过插件安装方式扩展,通过SSH终端工具上传到虚拟电脑,或者直接在虚拟电脑上通过wget/curl命令下载到本地。

然后,解压Zeppelin软件包到自定义的安装目录下面,进入到 conf 文件夹下,将原有的zeppelin-site.xml.template配置文件拷贝另存名称为zeppelin-site.xml文件。该文件中主要包括Zeppelin服务相关的配置项,如对外访问端口默认为**8080**,可修改成自定义的端口号,其它参数配置也可按实际情况进行修改。更加详细的参数配置说明,可访问官方提供的说明 zeppelin-configuration 。完成配置参数自定义修改后,重新切换到Zeppelin安装目录,执行如下的命令,便以后台常驻形式启动Zeppelin服务:

1
[kylin@quickstart zeppelin-0.8.1-bin-netinst]$ bin/zeppelin-daemon.sh start

最后,打开浏览器在地址栏中输入:http://虚拟电脑IP地址:8080/,敲下回车键,即可成功访问和使用Zeppelin服务。

集成Kylin

手动添加Kylin的解释器,在Zeppelin的安装目录下执行如下的命令进行安装操作,安装完成后需要重启Zeppelin服务。

1
2
3
[kylin@quickstart zeppelin-0.8.1-bin-netinst]$ bin/install-interpreter.sh --name Kylin --artifact org.apache.zeppelin:zeppelin-kylin:0.8.1

[kylin@quickstart zeppelin-0.8.1-bin-netinst]$ bin/zeppelin-daemon.sh restart

然后,对Kylin的解释器进行相关配置,通过浏览器访问并打开Zeppelin的Notebook 页面,在页面左上角的菜单进入到解释器的配置页面找到Kylin标题,将KylinREST API 相关的信息进行配置,如 API 地址、用户名、密码等信息,可参考下图所示:

Zeppelin中Kylin配置

配置解析器

最后,可创建一个简单的 Notebook 进行初步的验证。创建新的Notebook需要填充2个关键的参数:Note Name(支持目录级创建),默认的解释器类型(不需要添加 %+ 解释器,这里选取Kylin),如下图所示: Zeppelin解释器配置

创建Notebook

接着在代码段输入查询SQL语句,点击右上角的执行按钮即可得到如下图所示的结果: Zeppelin查询效果

制作仪表盘

设计定制化的数据报表之前,需要先来熟悉下Zeppelin的 Notebook UI 界面布局。前面集成Kylin操作中已经提及到创建 Notebook 的操作,正如“创建 Notebook”图中所示,通过 Notebook 下拉菜单,可以有如下的操作:

  • Create new notebook
  • Filter
  • Folder/notebook

ZeppelinNotebook是由不同的段落(卡片)组合而成的,创建好一个新的Notebook后,默认也会创建一个新的卡片,执行查询后在界面上可清晰看到如下图所示的区域划分:

Zeppelin卡片划分

Notebook 区域划分:

  • 绿色: 功能区域,包括执行、展开/收缩、显示/隐藏、设置等操作
  • 红色: 代码(SQL 语句)编辑区域
  • 黄色: 可视化显示类型区域,切换不同的显示方式
  • 黑色: 结果显示设置区域,针对不同的显示效果做相应的设置调整
  • 蓝色: 可视化结果显示区域

注:Zeppelin 的卡片不支持直接拖拽排列布局,需要通过功能区来操作(或是快捷键按钮),关于功能区域各按钮作用说明可参考官方网站说明: explore_ui.html#note-toolbar

在了解清楚ZeppelinNotebook 的布局和使用后,可得知通过不同卡片的组合就能轻松实现定制化的数据报表,那么只需要根据自己的想法来创建不同类型的数据卡片,最终形成与自己想法一致的数据仪表盘,通过Zeppelin的 Report 模式发布后可直接访问,如下图所示。 Zeppelin仪表盘效果

扩展插件

Zeppelin 自带的可视化图形并不是很丰富,只有常见的 5 种类型,包括有表格、柱形图、饼图、面积图、折线图和散点图。这些图形常常不能满足我们做定制化报表的需求,Zeppelin 提供了基于 Helium 框架来丰富可视化组件的方式,扩展操作也是相当的方便,在页面右上角的下拉菜单中找到 Helium,点击跳转到 Helium 可视化组件列表页面。浏览并找到所需要的可视化类型,点击右侧的 Enable 按钮并在弹出的窗口中点击 OK 按钮,稍等一会便可完成新的可视化组件的扩展,如下图所示:

Zeppelin扩展插件

注意,新开启的可视化组件需要重启后才能生效,在Zeppelin安装目录下执行如下命令进行重启,然后重新打开 Notebook,在卡片的功能区上面便可查看到新可视化组件按钮。

1
[kylin@quickstart zeppelin-0.8.1-bin-netinst]$ bin/zeppelin-daemon.sh restart

总结

通过Kylin+Zeppelin集成来制作定制化数据报表,你能发现“麒麟”神兽除具有神速以外,还有强大的可扩展性能与BI工具友好的对接。除了本文中介绍到的Zeppelin之外,Kylin还能对接很多 BI工具,比如:SupersetCBoradTableauPower BI帆软 BI永洪 BISmartBI等等。甚至,你还可以根据自身的需求,定制开发个性化的数据报表平台。用一句时髦的话来说,就是“没有做不到的,只有你想不到的”。