本文针对Zeppelin版本:v0.8.1
Github地址 https://github.com/apache/zeppelin
Zeppelin主体由Java开发,使用Maven作为构建工具,语言组成如图所示:
其中,核心的Server、Zengine、Interpreter、Jupyter模块都由Java语言编写,Zeppelin Web模块使用AngularJS框架以及基础的js、css、html等技术。
Maven项目由多个module组成,分为框架核心module和其他解释器module。其中核心的module有:
-
zeppelin-server
项目入口,通过Jetty内嵌服务器提供WebSocekt服务和RESTful服务,并且提供了基本的权限验证服务。 -
zeppelin-zengine
实现Notebook的持久化和检索服务。 -
zeppelin-interpreter
抽象了interpreter接口,规定了解释器的功能。并且提供了与zeppelin-zengine使用Thrift进行通信的协议。 -
zeppelin-display
实现前台Angular元素绑定后台数据。 -
zeppelin-jupyter
封装了Java对Jupyter的应用机制,将Jupyter的框架纳入Zeppelin。 -
zeppelin-web
提供可视化用户界面,使用AngluarJS框架开发的前端。 -
helium-dev
helium可以使interpreter模块在软件运行时加入到Zeppelin中,即实现解释器的自启动。 -
zeppelin-distribution、zeppelin-integration
此两个模块主要是用于Zeppelin的打包发布。 -
其他解释器模块
包括alluxio、angular、bigquery、Cassandra、Elasticsearch、file、flink、groovy、hbase、ignite、jdbc、kylin、lens、livy、markdown、neo4j、pig、Python、r、scio、shell、spark等