编辑推荐: |
本文主要介绍了Apache
Zeppelin的概念,主要功能和特点以及Zeppelin支持语言和组件,希望本文对大家有帮助。
本文来自CSDN,由火龙果软件Alice编辑、推荐。 |
|
1. 什么是Apache Zeppelin
在正式进入Apache Zeppelin的正题之前,我们必须先了解两个概念。
REPL
REPL全称是Read Evaluate Print Loop,交互式解释器环境,通过交互式界面接收用户输入,交互式解释器读取输入内容并对它求值,返回结果,并重复此过程。
Jupyter Notebook
Jupyter Notebook(早期叫IPython notebook)是一个交互式笔记本,支持运行
40 多种编程语言。Jupyter Notebook 的是一个Web应用程序,便于创建和共享程序文档,支持实时代码、数学方程、可视化和Markdown语法,常用在数据清理转换、数值模拟、统计建模、机器学习等业务场景。
1.1 官方的定义
Apache Zeppelin官方网站的定义如下
Web-based notebook that enables data-driven, interactive
data analytics and collaborative documents with SQL,
Scala and more.
翻译过来就是
Zeppelin是支持数据驱动、交互式数据分析、协作式文档等特性的基于Web的交互式应用开发引擎,应用以Notebook形式表示,支持Scala、Python、SQL、Markdown、shell等多种语言。
其中,Notebook是来自于Jupyter的概念,Zeppelin在前端以Jupyter作为工作引擎,将一个应用作为一个Notebook。
Zeppelin官方网站 http://zeppelin.apache.org/
Github地址 https://github.com/apache/zeppelin
另外,需要提一点的是在Github上Apache Zeppelin初次提交的时间是2015年7月,第一个正式版本是0.5.0,最新发布(2019年1月)的版本是0.8.1。
有意思的是,奇虎360的一个分布式Key-Value存储组件也叫Zeppelin,项目代码在Github初次提交是2016年。项目地址https://github.com/Qihoo360/zeppelin
1.2 通俗易懂的理解
Apache Zeppelin是一款大数据分析和可视化工具,可以让数据分析师在一个基于Web页面的笔记本中,使用不同的语言,对不同数据源中的数据进行交互式分析,并对分析结果进行可视化的工具。
Zeppelin的设计理念就是通过不同的解释器支持多种语言的REPL,并对返回结果进行可视化展示。
1.3 Apache Zeppelin的主要功能和特点
1.3.1 主要功能
可视化交互式数据分析
用户通过可视化界面,交互式地输入指令、代码提交给Zeppelin编译执行。
Notebook管理
用户通过Web页面轻松地实现Notebook应用的增加、修改、运行和删除,支持应用的快速导入导出。
数据可视化
指令、代码提交后Zeppelin返回结果给用户,如果是结构化的数据,Zeppelin提供可视化机制,通过各类图表展示数据,十分方便。
解释器配置
用户可以配置系统内置的Spark、JDBC、Elasticsearch等解释器,支持按组管理解释器、为一个Notebook应用绑定多个解释器。
运行任务管理
用户将Notebook应用提交给Zeppelin运行,也可以停止正在运行的任务。
用户认证
Zeppelin提供完善的用户认证机制。
Notebook应用一键分享
调试完毕的Notebook应用可以提供统一访问的HTTP地址给外部应用访问。
1.3.2 主要特点
完全开源
Apache系列软件的最大特点就是开源,无论是学习还是企业应用,一概不需要授权。
多语言多生态组件支持
Apache Zeppelin提供20多种语言和大数据生态组件解释器,支持Python、Shell、Scala、R、Markdown等语言的REPL;支持使用JDBC方式对PostgreSQL、Mysql、Mariadb等常见数据库的CRUD操作;支持Hive、Cassandra、HDFS、Spark、Hbase、Kylin、Elasticsearch、BigQuery、Neo4j等大数据生态组件的REPL。
丰富的数据分析案例
Hortonworks的HDP产品内置了很多数据分析案例,通过Zeppelin提供的导入功能可以很轻松地讲分析应用集成到自己的产品中。
插件机制
用户可以遵循Zeppelin的插件集成结构自己定义解释器,接口清晰,配置简单容易实现。
多用户机制
Zeppelin具有完善的用户权限认证机制,用户可以管理自己的Notebook。
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解释器:支持Elasticsearch稳定的CRUD操作。 |