推荐一款可视化 +NoteBook 工具

大数据平台搭建好后,我们要做的就是探索数据,探索数据就需要查询,做可视化,那么一款好用自助查询可视化工具,你值得拥有!
一、Zeppelin介绍
Apache Zeppelin是一个让交互式数据分析变得可行的基于网页的开源框架。Zeppelin提供了数据分析、数据可视化等功能。
Zeppelin 是一个提供交互数据分析且基于Web的笔记本。方便你做出可数据驱动的、可交互且可协作的精美文档,并且支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、Hbase、 Markdown、Shell、MySQL、postgresql、JDBC等等。

Zeppelin提供了Interpreter(解释器)来连接各种数据源,也根据提供的API可以开发新的interpreter。
二、软件部署
环境
jdk
最新版本的Zeppelin(http://zeppelin.apache.org/download.html)
下载zeppelin-XX-bin-all.tgz,拷贝到准备部署的主机上,然后解压。
解压后看到目录结构如下:

配置Java环境变量
copy原来的conf/zeppelin-env.sh.template命名为zeppelin-env.sh,在conf/zeppelin-env.sh添加Java路径。

配置地址端口号
copy 原来的conf/zeppelin-site.xml.template修改配置文件conf/zeppelin-site.xml。默认端口是8080,如果8080端口没有被占用,也可以使用默认端口,不用修改。

启动
bin/zeppelin-daemon.sh start,查看日志,首次启动会创建日志目录

启动成功,打开前台web页面 172.1.1.1:8888

新建notebook,测试(默认为Scala语言)

三、连接hive数据仓库
配置interpreter
在前台页面打开interpreter,找到JDBC,配置参数

HiveServer2 的用户名和密码可以通过编辑 $HIVE_HOME/conf/hive-site.xml 属性:
• hive.server2.thrift.client.user
• hive.server2.thrift.client.password
如果没有配置该属性,那么上面的interpreter参数中的用户和密码可以不用配置。
下面就可以使用Zeppelin连接hive进行查询,首先新建一个notebook:

验证是否成功连接hive,输入:show databases,运行如下:

输入查询SQL脚本,运行如下图:
keys:指横轴
Values:指纵轴
可以通过拖拉方式指定Key和Values(横轴纵轴的比例是自适应的)

其中可视化的表现形式可以选择:

四、权限设置
在登录的时候我们发现Zeppelin默认登录时不需要输入用户名密码的,也就是匿名登录模式anonymous,通过查看配置文件conf/zeppelin-site.xml可以发现,默认配置的是允许匿名访问。

如何修改权限呢?
首先我们修改该配置zeppelin.anonymous.allowed的value为false,表示不允许匿名访问
conf/shiro.ini文件,显然zeppelin采用了shiro作为他的验证登录权限控制框架,修改文件最后一行

把/=anon修改为/=authc,这样重启zeppelin后访问我们的zeppelin主页就变成这个样子了。(注意右上角编程了login)

看见右上角的Login按钮了吧,点击login但是没有发现注册按钮。

需要修改conf/shiro.ini配置文件,其实Zeppelin已经给你配好了几个用户,再次再新增一个用户

然后重启Zeppelin,点击login登录,输入刚才的账号密码登录,可以看到登录上去了。

当然权限控制远不止如此。比如:
打开刚才的notebook,可以看到右上角有一个小锁的标志,点击,可以输入对应的用户对该notebook操作权限。

使用其他用户登录会提示没有权限

可以看到可以对每一个notebook进行权限控制,这样在分享自己的分析结果中很方便。
五、总结
Zeppelin的解释器设计非常巧妙,及时官方没有,你也可以开发自己的解释器(现在已经很完善,支持各种连接)。zeppelin支持MD、shell、python、R、SQL、scala等多种语言,在notebook中可以使用多种语言结合markdown和可视化在探索数据后,随即做一个很漂亮的分析报告,不用再机芯数据导出,数据可视化,多个工具之间进行迁移,大大提高工作效率。对于分析团队很有必要引入一下该组件,新的分析团队成员再也不用担心开发环境配置了~
历史好文推荐

版权声明: 本文为 InfoQ 作者【数据社】的原创文章。
原文链接:【http://xie.infoq.cn/article/b3351cb1141ab3fc22b5ef9f1】。文章转载请联系作者。
评论