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

本文介绍了Apache Zeppelin的三种分享方式:内部分享、iframe方式分享及全球分享,并详细讲解了如何通过权限控制保护Notebook的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

原创声明:

  1. 本文为原创文章
  2. 如需转载需要在文章最开始显示本文原始链接
  3. 为了更好的阅读体验,请回源站查看文章。有任何修改、订正只会在源站体现
  4. 最后更新时间:2016年08月24日

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是一个非常好的选择。



资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电子工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离子电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在 Android 开发中,Fragment 是界面的一个模块化组件,可用于在 Activity 中灵活地添加、删除或替换。将 ListView 集成到 Fragment 中,能够实现数据的动态加载与列表形式展示,对于构建复杂且交互丰富的界面非常有帮助。本文将详细介绍如何在 Fragment 中使用 ListView。 首先,需要在 Fragment 的布局文件中添加 ListView 的 XML 定义。一个基本的 ListView 元素代码如下: 接着,创建适配器来填充 ListView 的数据。通常会使用 BaseAdapter 的子类,如 ArrayAdapter 或自定义适配器。例如,创建一个简单的 MyListAdapter,继承自 ArrayAdapter,并在构造函数中传入数据集: 在 Fragment 的 onCreateView 或 onActivityCreated 方法中,实例化 ListView 和适配器,并将适配器设置到 ListView 上: 为了提升用户体验,可以为 ListView 设置点击事件监听器: 性能优化也是关键。设置 ListView 的 android:cacheColorHint 属性可提升滚动流畅度。在 getView 方法中复用 convertView,可减少视图创建,提升性能。对于复杂需求,如异步加载数据,可使用 LoaderManager 和 CursorLoader,这能更好地管理数据加载,避免内存泄漏,支持数据变更时自动刷新。 总结来说,Fragment 中的 ListView 使用涉及布局设计、适配器创建与定制、数据绑定及事件监听。掌握这些步骤,可构建功能强大的应用。实际开发中,还需优化 ListView 性能,确保应用流畅运
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值