Zeppelin 源码分析(二):项目结构

进入 Zeppelin 源码目录,模块看似繁杂实则有序。如果将 Zeppelin 的模块按功能划分,可以分为以下几大模块:

  • zeppelin-server
  • zeppelin-web
  • zeppelin-zengine
  • zeppelin-interpreter
  • zeppelin-distribution

zeppelin-server 模块

zeppelin-server 模块是 Zeppelin 服务的入口模块,其本身是一个内嵌的 Jetty 服务。用于提供 UI 界面、REST API 接口、WebSocket 连接和权限。

zeppelin-web 模块

Zeppelin 使用了前后端分离的设计,zeppelin-web 是基于 AngularJS 的前端模块。

zeppelin-zengine 模块

Notebook 和 Interpreter 管理,是 Zeppelin 的核心模块。

zeppelin-interpreter 模块

为支持多语言环境,抽象出来的 Interpreter 接口。

zeppelin-distribution 模块

用于模块、脚本和配置打一个分发包。