前言
我们知道,zeppelin有功能强大的交互式notebook,而且能生成非常好的报表数据。但是由于一些安全的原因,我们很少会直接将我们集群的zeppelin服务地址分享给别人,因为在zeppelin notebook中,用户可以直接查询集群的数据甚至执行shell,将这些公开给外部用户是十分危险的。而且有些云计算平台(像Aliyun E-MapReduce, Amazon AWS等)为了安全考虑,关闭了一些端口,需要通过端口转发才能在集群外部环境访问到zeppelin服务,这就使得共享集群zeppelin服务更难。这样的话,我们为了共享我们的交互式报表和数据的时候,就只能通过截图到PDF或者ppt中,然后在发邮件给别人,非常麻烦,而且还无法保存notebook报表上的动态数据提示信息和交换数据。
现在,有了ZeppelinHub viewer,就不用这么麻烦了。ZeppelinHub是一个专门用于分享zeppelin notebook的工具,有自己的账号体系,可以与zeppelin服务集成,进行zeppelin notebook的分享、复制已经多租户的权限管控。ZeppelinHub viewer是它的一个最简单的notebook分享功能,不需要用户提供一个zeppelin服务环境,甚至不需要注册登录ZeppelinHub就能使用。
生成报表
首先,需要分享者在zeppelin服务页面创建notebook,生成一系列的表表数据
关于交互式和可视化,可以参考:如何在Aliyun E-MapReduce集群上使用Zeppelin和Hue
保存notebook为josn格式
将生成好报表数据的notebook保存为json数据:
注意将该json文件命名为note.json。在ZeppelinHub Viewer使用的时候约定为该名称。
将该json文件上传到oss且设置为公共读(或者放在github上)
将该oss文件的路径粘贴到ZeppelinHub Viewer中
访问:https://www.zeppelinhub.com/viewer
并且把刚才的note.json文件的路径粘贴过来
点击“view”就能看到该notebook中的报表和对应的查询sql。
https://www.zeppelinhub.com/viewer/notebooks/aHR0cDovL2Vtci1zYW1wbGUtcHJvamVjdHMub3NzLWNuLWhhbmd6aG91LmFsaXl1bmNzLmNvbS96ZXBwZWxpbi1ub3RlYm9vay1qc29uL25vdGUuanNvbg
只要将这个地址分享出去,就可以访问到报表和notebook,而且安全。