分享

spark交互数据探索及周期执行软件Zeppelin


问题导读:

1.什么是Zeppelin?
2.Zeppelin有哪几种分享方式?





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

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

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

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

zeppelin-share-1.png

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

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

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

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

选择“Link this paragraph”

zeppelin-shre-link-the-paragraph.png

然后复制URL

zepeelin-copy-the-link.png

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

[mw_shl_code=html,true]<iframe src="http://< ip-address >:< port >/#/notebook/2B3QSZTKR/paragraph/...?asIframe" height="" width="" ></iframe>
[/mw_shl_code]

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

看看官方自己的例子:

Zeppelin-share-your-website.png

3. 加上权限的安全分享
如果一个人对Html或者Zeppelin的原理比较清楚,那么就有可能从iframe的地址反查到Notebook的真实URL。并且可能会很好奇的进行修改之类的操作
这个时候我们就需要加上权限控制。

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

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

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

[mw_shl_code=text,true][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/configur ... uration-INISections
admin = password1
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2

[roles]
role1 = *
role2 = *
role3 = *[/mw_shl_code]

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

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

zeppelin-share-2.png

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

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

[mw_shl_code=text,true]# 原始状态
/** = anon
#/** = authc

# 新的状态
#/** = anon
/** = authc[/mw_shl_code]

即将anon注释,反注释authc

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

[mw_shl_code=text,true][users]
admin =  222222
reader = 111111, readers
writer = 111111, writers

[roles]
readers = *
writers = *
owners  = *[/mw_shl_code]

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

zeppelin-share-insufficient-permission.png

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

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

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

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

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


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

[mw_shl_code=text,true]export ZEPPELIN_NOTEBOOK_STORAGE="org.apache.zeppelin.notebook.repo.VFSNotebookRepo, org.apache.zeppelin.notebook.repo.zeppelinhub.ZeppelinHubRepo"
export ZEPPELINHUB_API_ADDRESS="ADDRESS_OF_ZEPPELINHUB_SERVICE" (e.g. https://www.zeppelinhub.com)
export ZEPPELINHUB_API_TOKEN="YOUR_TOKEN_STRING"

# With user key if provided
export ZEPPELINHUB_USER_KEY="YOUR_USER_KEY"[/mw_shl_code]

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

只不过如果你需要给老板一个非常绚丽的图,Zeppelin默认的图表功能还是弱了一点。可以通过结合Highcharts / D3.js 等其他的js 类库进行绘图。
如果你是一个数据工作者,需要交互式的进行数据探索,或者你有一些Spark 相关的简单任务,需要周期性的执行,Zeppelin是一个非常好的选择。




来源:flyml
作者:rangerwolf




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条