版 本
Apache Zeppelin:0.9.0
Spark 2.3.3
关于Apache Zeppelin-0.9.0的安装以及配置Spark-2.3.3请参考博客Apache Zeppelin-0.9.0安装配置Spark-2.3.3,这里不再重复累赘;
创建Note
打开zeppelin网页端口,登录后,可以通过图1菜单栏Notebook
下拉或者直接点击页面的Create new note
创建Note
,Note
就是你写代码的编辑窗口,然后弹出图2,按要求编辑好;
编写Note的Spark-SQL程序
Note里面的代码是由一段一段(paragraph)组成的,当你写完一段运行完后,会在下面生成一个新的paragraph,这些paragraph就组成了这个Note,具体的操作如下图3;多尝试下就上手了,这里写一个hive表里面查询每个城市的售卖某商品的个数;
注意:sql能运行需要你配置了spark on hive,有疑问的可以参考Hive从入门到放弃——Hive与其他技术的结合之spark on hive(十七);
- 执行段落代码;
- 隐藏/显示代码区域
- 隐藏/显示结果区域
- paragraph设置,点击展开如图5
每一段paragraph设置详情如图5,分别为:
- 找到段落ID(20150924-163507_134879501)
- 控制段落宽度。由于Zeppelin使用Twitter Bootstrap的网格系- 统,因此每个段落的宽度可以从1更改为12
- 将第1段上移
- 将第1段下移
- 创建一个新段落
- 更改段落标题
- 显示/隐藏行号 code section
- 禁用此段的运行按钮(因为顶上还有运行所有paragraph,所以你懂的!)
- 将当前段落导出为iframe,然后在新窗口中打开iframe
- 清除 result section
- 删除当前段落
支持查询结果的可视化;如图4,图5的数据树状图和饼图展示
- 按显示顺序顺序执行所有段落
- 隐藏/显示code section所有段落
- 隐藏/显示result section所有段落
- 清除result section所有段落
- 复制当前笔记
- 将当前Note导出文件。请注意,所有段落中的code section和result section都将被导出。如果result section某些段落中有大量数据,建议在导出之前先清理它们
- 提交当前节点的内容
- 删除笔记
- 使用CRON语法定时执行所有段落的代码
编写Paragraph的Spark-Shell程序
Spark-Shell的paragraph运用,如图8,因为博主配置了zeppelin支持spark,则直接可以编写spark,注意解析器改成%spark
,这里试一下scala
编写的spark-shell代码,如图6;scala
和python
语言是支持TAB
智能拼写补全的哟,不错吧,而且和集群的spark-shell一样spark,sc
已经默认给你创建好,可以直接使用;
编写Paragraph的Python程序
python的paragraph运用,如图9,因为我安装zeppelin的机器python配置了环境变量,则直接可以编写python,注意解析器改成%python
,python
和scala
语言是支持TAB
智能拼写补全的哟;
Apache Zeppelin支持Spark,python的小试牛刀就说道这里了,有机会多去看看官网介绍Explore Apache Zeppelin UI,了解下基本概念,如图8,同时多倒腾下网页版的这些功能,自然就上手了;
- Note :新建/导入一个Note来编写代码及查看运行结果,类似集成开发环境的一个窗口;
- Paragraph : Note中相互独立的一个段落,一个Note可以有若干个段落组成,且这些段落可以是不同语言的代码,相互独立,互不干扰;
- Interpreter :代码的解析器,或者解释器,不同编程语言段落代码依赖的Interpreter不同,默认新生成的段落的Interpreter和上一个段落的一致,可自行修改,采用段落顶个’%'加上Interpreter类型的形式来引用不同的Interpreter,如
%spark
,%python
,%sql
等; - Interpreter Setting:各自Interpreter的独自配置,支持组件的多版本,如你有两个spark集群,则可以配置两个名字不同的Interpreter,各自的配置各不相同,段落代码引用时按各自需求引用即可;