可视化交互式数据分析工具Apache Zeppelin
1. 什么是Apache Zeppelin
在正式探讨Apache Zeppelin的主题之前,请深入理解其两大核心概念。
Jupyter Notebook 是一个广泛使用的交互式开发平台(早期称为 IPython Notebook),其兼容性极强的多语言环境使其成为数据科学家和技术人员的首选工具。作为一个基于网络的应用程序(Web应用程序),Jupyter Notebook 提供了强大的在线协作功能和丰富的内容生成能力(如实时代码生成、数学表达式的展示以及数据可视化的呈现)。它不仅支持基本的文本编辑功能(如Markdown语法),还集成了一套完整的开发环境(包括实时执行脚本的能力)。这种工具广泛应用于数据分析与清洗、数值计算模拟以及统计建模等多个领域。
1.1 官方的定义
Apache Zeppelin官方网站的定义如下
Web-based notebook which supports data-driven analysis and enables interactive data analytics for collaborative documents including additional technologies like SQL and Scala.
翻译过来就是
Zeppelin是一个基于Web的交互式应用开发平台,并具备数据驱动分析功能;它采用Notebook的形式表示工作流程,并可兼容使用Scala, Python, SQL, Markdown以及shell等多种编程语言。
Notebook源自于Jupyter的概念,在前端使用基于Jupyter的工作引擎将一个应用作为一个整体单位。

官方 servlet engine平台 http://zeppelin.apache.org/
GitHub开源项目地址 https://github.com/apache/zeppelin
此外,在Github上初次提交Apache Zeppelin的时间是2015年7月;其首个正式版本为0.5.0;在其完整的版本发布历程中(截至2019年1月),最新的发布物为其最新版本。值得注意的是,在奇虎360开发的一款分布式Key-Value存储组件也被称为Zeppelin;其代码首次在Github上公开是在2016年;而该项目的具体地址可访问https://github.com/Qihoo360/zeppelin
1.2 通俗易懂的理解
Apache Zeppelin是一种高级数据分析与复杂数据处理的数据呈现工具。它支持数据分析师在Web-based notebook环境中工作,并允许他们利用多种编程语言探索不同数据源中的信息并提供实时数据分析。同时帮助用户以视觉化的方式理解分析结果。
其设计理念核心在于基于不同解释器支持多种语言的REPL,并同时提供直观的结果展示。
1.3 Apache Zeppelin的主要功能和特点
1.3.1 主要功能
- 可视化交互式数据分析
开发人员借助图形化界面,并动态地将指令和代码输入至Zeppelin中进行编译与执行。
用户能够通过Web页面便捷地完成Notebook应用的各项操作包括增加、修改、运行和删除,并且系统能够支持快速导入导出功能
- 数据可视化
相关指令和代码提交后Zeppelin会将处理后的结果反馈给用户。对于结构化的数据来说,Zeppelin提供一套完整的可视化解决方案,并采用多种图表形式呈现数据信息。这种方式大大提升了用户体验和工作效率。

用户可以根据系统内置的Spark、JDBC和Elasticsearch等解析器进行设置,并且该系统能够提供按组进行管理的功能以及为单个Notebook应用分配多个不同的解析器的支持
执行任务调度
通过Notebook应用向Zeppelin系统提交任务,并可终止当前执行的任务。
- 用户认证
Zeppelin提供完善的用户认证机制。
Notebook应用能够快速实现数据共享。调试完毕的Notebook应用支持为调试完成的应用提供统一HTTP地址的访问权限,并让外部应用程序能够通过该地址进行连接和操作。
1.3.2 主要特点
基于开源
Apache系列软件的核心优势在于它是基于开源理念开发的。无论是标准化实践还是企业应用需求,在Apache生态中均无需额外授权。
Apache Zeppelin 拥有多样化的语言和大数据生态组件解析器,并包含 Python、Shell、Scala、R 和 Markdown 等语言的 REPL 功能;它能够通过 JDBC 方式对 PostgreSQL、MySQL 和 MariaDB 等常用数据库执行 CRUD 操作;此外还能够实现 Hive、Cassandra、HDFS、Spark 和 Hbase 等大数据生态组件以及 Kylin 数据库平台的交互界面功能。

大量的实用数据分析案例 Hortonworks 的 HDP 产品内置了大量实用的数据分析案例,并通过 Zeppelin 提供的导入接口能够方便地将分析应用集成到自身的解决方案中
插件机制
用户可以根据Zeppelin的插件集成结构自行构建解析器,并确保其具有明确的接口设计和简洁且易于搭建的配置方案。
多人协作模式下运行的Zeppelin系统采用成熟的权限认证系统。每个用户提供基础的笔记本文件管理功能。
2. Zeppelin支持语言和组件
Zeppelin支持的语言和组件列表见下表:

常用的解释器说明:
- 语言解析器:全面提供Python、Shell、Markdown与R语言功能;
- 前端框架解析器:能够处理Angular语法并生成多样化的格式化内容;
- Spark解析器:基于Scala语言支持Spark Core、Mllib与GraphX调用,并提供纯SQL方式的Spark SQL处理以及R语言基础下的Spark R语法支持;
- JDBC解析器:涵盖PostgreSQL、Mysql与Mariadb等主流关系型数据库,并集成Hive与Phoenix大数据组件;
- Elasticsearch解析器:确保稳定可靠的CRUD操作功能。
