让Spark如虎添翼的Zeppelin – 分享篇

from http://www.flyml.net/2016/08/26/reinforce-spark-with-zeppelin-share-your-work/

0. 前提

如果您还没有搭建Zeppelin,请先阅读上一篇文章《让Spark如虎添翼的Zeppelin – 基础篇》

本篇文章着重介绍如何将您制作好的notebook / report 分享给其他人。

根据分享的对象不同,可以采用不同的分享方式

1. 内部分享

这种分享方式是分享给同一个部门或者同一个项目组里面的同学。

大家沟通比较方便,对权限控制也比较简单。

如上图,只需要选择report选项再将地址发给你的同事或者小伙伴就好啦

这种分享方式比较简单粗暴,粗暴就粗暴在,如果多个人同时打开编辑,说不定就互相乱套啦。

而且如果有一个人只是想看看报表的话,可能还会被其他东西误导

 

2. iframe 方式分享

这种方式也算是比较简单的一种,只不过需要自己准备一个页面并把图表加载进来。

选择“Link this paragraph”

然后复制URL

最后嵌入到你的Dashboard 之中即可

你还可以组合多种paragraph,比如文字说明、图表、表格等等。

看看官方自己的例子:

 

3. 加上权限的安全分享

如果一个人对Html或者Zeppelin的原理比较清楚,那么就有可能从iframe的地址反查到Notebook的真实URL。并且可能会很好奇的进行修改之类的操作

这个时候我们就需要加上权限控制。

Zeppelin已经集成了Apache Shiro,因此是有很强的权限控制能力的。只不过目前做的比较简单。

配置文件主要在conf/shiro.ini

我们主要关注下面几个section:users / roles

users 自然不必说,就是账号了。 其中admin 应该是一个比较特殊的账号。

需要特别说明一下的是roles. 角色部分,Shiro可以做得非常细致。但是在查阅了官方说明之后,Zeppelin把事情简化了。 在配置文件之中,只配置角色的名称,每个角色都是全部的权限。 然后控制Read / Write / Manage 的权限,是在Notebook UI 来设置:

UI 上面, Zeppelin还比较贴心的做了一个自动提示的功能。

最后,还需要我们在配置文件之中开启权限控制

即将anon注释,反注释authc

可能role1 / role2  不太好记忆,可以尝试下面的写法:

如果一个reader想要去修改内容,那么就会遇到下面的弹窗:

 

所以,一个比较稳妥的办法时候结合上面的2与3两种方法。

注意: Shiro的配置修改之后,需要重启Zeppelin使其生效

 

4. 分享给全世界

Zeppelin 还创建了一个分享的社区。 我们可以将自己的作品分享到社区之中,给全世界的人来看

首先我们要到https://www.zeppelinhub.com/ 创建你自己的账号。 邮箱即可~

接下来我们要做的,就是将自己的Notebook提交到ZeppelinHub 之中。

官方说明: http://help.zeppelinhub.com/zeppelin_integration/

感觉界面使用起来非常简单,也不啰嗦了~ 简单的说就是在界面上创建一个Instance,然后记住自己的user key / token string 并把这个信息写到本地的配置文件(conf/zeppelin-env.sh)即可

总结:

总体来说,Zeppelin是一个非常强大的框架,整合了很多计算能力,同时在分享上面也做了很多工作。

只不过如果你需要给老板一个非常绚丽的图,Zeppelin默认的图表功能还是弱了一点。可以通过结合Highcharts / D3.js 等其他的js 类库进行绘图。

如果你是一个数据工作者,需要交互式的进行数据探索,或者你有一些Spark 相关的简单任务,需要周期性的执行,Zeppelin是一个非常好的选择。

分享到:更多 ()