使用Zeppelin代替spark-shell

部署

把下载的bin-all.tgz上传到服务器,解压放到自己常用的目录下。
为了使用spark.read.jdbc功能,需要上传一份mysql connector jar到lib/interpreter下,否则spark执行会报错。

启动

使用bin/zeppelin-daemon.sh start启动后台服务
然后使用bin/zeppelin.sh启动web端

《使用Zeppelin代替spark-shell》

这样在服务器的8080端口就可以看见应用界面

《使用Zeppelin代替spark-shell》

设置

我们需要设置到spark的连接,通过右上方的下拉菜单“Interpreter”进入适配器管理界面,设置好到spark集群的连接,然后把这个适配器重启一下。

《使用Zeppelin代替spark-shell》

使用

通过“Create new note”建立一个便签,便签的执行单位是段,每段的右上角都有执行、展示\隐藏代码、展示\隐藏输出,更多操作的工具条。这里每段的代码就和写在spark-shell里面的一样。

《使用Zeppelin代替spark-shell》

最后输出的时候需要注意,为了使用zeppelin的数据可视化功能,推荐以table形式输出,同时组织好输出数据的关系,以便直接展示。现在数据可视化的功能还不是太强大,只可以在settings里面调整数据展示的逻辑。

《使用Zeppelin代替spark-shell》

最后效果展示,这是某系统中各个地点的重量级别发生次数的分布图。

《使用Zeppelin代替spark-shell》

图示略有交互性,可以选择展示的和隐藏的groups,通过图示上方的小圆圈选中与否控制,为了保护数据隐私,这里不作展示。

安全

zeppelin默认任何人都可以访问,这样太不安全了,所以需要加上一点保障,一方面是用户登录权限,一方面是文档的读写权限。
官方的说明页面在此:登录权限,文档权限
首先在zeppelin/conf目录下,把zeppelin-site.xml.template复制成zeppelin-site.xml,把shiro.ini.template复制成shiro.ini。
修改zeppelin-site.xml,把zeppelin.anonymous.allowed的值改成false

《使用Zeppelin代替spark-shell》

保存退出。

然后修改shiro.ini。在
[users]段中,按照
登录名=密码,角色1,角色2,...角色N的格式添加登录账户,保存退出。

终端里面执行脚本,重启后台服务:

zeppelin-daemon.sh restart

然后刷新网页就可以看到需要登录了。

文档的权限是进入zeppeline后在文档的编辑界面上设置的,参见官方文档的图示,非常简单。

点赞