了解Zeppelin的架构有助于你分析开发过程中碰到的问题以及如何更好的使用Flink on Zeppelin。
Zeppelin 架构
首先我们来了解下 Zeppelin的架构, Zeppelin 主要分3层。
- Web前端
- Zeppelin Server
- Interpreter
- Zeppelin前端负责前端页面的交互,通过Rest API 和WebSocket的方式与Zeppelin Server进行交互。
- Zeppelin Server是一个Web server,负责管理所有的note,interpreter 等等,Zeppelin Server不做具体的代码执行,会交给Interpreter来执行代码
- Interpreter 是一个独立的进程,负责具体前端用户提交的代码的执行(比如Spark Scala代码或者SQL代码等等)。Zeppelin Server与 Interpreter 自己是通过thrift 来进行通信,而且是双向通信。Zeppelin支持目前大部分流行的大数据引擎,上图只展示了其中3种比较常用的引擎:Flink,Spark,Jdbc
Zeppelin Server是独立的进程,进程日志在logs目录下的 zeppelin-{user}-{host}.log, 每个Interpreter也是一个独立的进程,进程日志是 logs目录下的 zeppelin-interpreter-{interpreter}-*.log, 所以如果碰到任何问题可以先去这两个log文件里去查找线索。
公众号 钉钉群