简介
What is Apache Zeppelin?
Multi-purpose notebook which supports 20+ language backends
什么是 Zeppelin?官网的解释是:一个能够支持 20 种以上编程语言的多用途的笔记本。
可以实现以下功能:
-
数据采集
-
数据发现
-
数据分析
-
数据可视化和协作
一、Zeppelin With Flink
Apache Flink 是一个分布式处理引擎框架,用于在无限和有限的数据流上进行计算。
1.1 flink 基本使用
可以用 flink 来做一些基本的数据操作,例如字符的个数统计,读取hdfs中的文档等
1.2 批处理 ETL (Batch ETL)
通过 Flink 的 Batch SQL 和 UDF(Scala、Python、Hive)来完成 Batch ETL,本案例主要步骤:
- 通过 shell 将银行数据下载到本地
- 通过 Flink Batch Sql 和 Scala UDF 解析并清除原始数据
- 通过 Sql将结构化和清理后的数据写入另一个 flink 表中
其中 UDF 是用户自定义函数,关于 UDF 相关的概念:
- UDF: 自定义标量函数(User Defined Scalar Function)。一行输入一行输出。
- UDAF: 自定义聚合函数。多行输入一行输出。
- UDTF: 自定义表函数。一行输入多行输出或一列输入多列输出。
1.3 探索性数据分析
- 可以通过 flink sql 对数据进行查询分析,例如:数据的聚合,动态表单等
- 可以自定义 UDF 后分析数据
1.4 流处理 ETL (Streaming ETL)
- 从 kafka 中获取数据
- 经过数据的过滤清洗等处理
- 将处理后的数据存放到 kafka 中
二、Zeppelin With Python
2.1 使用 python 进行数据可以化
python 中有很多支持可视化的库,例如:
- Matplotlib
- Pandas
- Seaborn
- Plotnine
- Bokeh
- Holoviews
- Altair
通过 python 程序生成可视化图表,生成图表可以被其他页面直接使用
2.2 使用 python 深度学习
使用 keras 对 IMDB 数据集进行情感二分类
IMDB数据集,它包含2.5万个正面情绪的影评,2.5万个负面情绪的影评。
- 载入数据
- 转换数据
- 建立模型
- 训练模型
- 使用图形化方式展示训练过程中个指标的变化
- 调整训练参数
- 再次训练模型
三、Zeppelin With Spark
3.1 基本使用
可以通过 sql 直接展示可视化图表,支持条件选择,数据钻取
3.2 使用 Spark MlLib
- 载入数据
- 转换数据
- 建立模型
- 训练模型
- 使用图形化方式展示训练过程中个指标的变化
- 调整训练参数
- 再次训练模型
3.3 Spark Sql
- 使用 Spark Sql 创建数表结构
- 增加列
- 过滤行
- 使用用户自定义函数
- groupBy 和 join
- 可视化
四、总结
- Zeppelin 主要为我们提供了一个多语言在线编辑的工具;
- 可以用于数据获取、处理、治理的工作;
- 可以用于数据分析,报表分析,可以生成链接,用于其他的 iframe 页面中;
- 可以用于机器学习的模型创建,参数调整等。