编写自定义的Zeppelin的Interpreter


需要了解的Zepplin知识

Zeppelin的逻辑架构简述

按照Zeppelin官网的说法,Zeppelin被定位为基于Web的支持多种数据源的可交互式数据分析系统。在我们的实际使用中,往往将其用作数据分析业务中的即席查询(AdHoc)的平台使用。因此Zeppelin的部署和维护过程中,维护方需要考虑以下几个重点:
– 访问用户的权限控制以保护数据安全
– 查询资源限制以保护后端数据服务的稳定性
为此,Zeppelin设计了包括Note和Paragraph等组件。Note是权限管控的最小单元,而Paragraph是执行查询的最小单元。而Interpreter则是Zeppelin在执行查询时,将Zeppelin上的执行语句转化为相应的数据服务的操作的代理组件。在调用Interpreter时,Zeppelin会将Note和Paragraph的相关信息封装在InterpreterContext中传给Interpreter以方便进行相应的数据处理,也即Interpreter主要与这两个组件产生耦合。而对于Interpreter的开发者而言,Note和Paragraph两个组件就是我们所需要关注的主要的Zeppelin的功能了。

Interpreter的实现方案简述

为了能够兼容更多的数据服务,Zeppelin的Interpreter以插件的形式提供服务。而为了能够兼容更广泛的插件实现方案,Zeppelin将Interpreter作为独立的进程实现,并通过基于Thrift的RPC实现跨进程甚至跨语言的RPC调用以完成Zeppelin主进程与Interpreter进程的交互。

远程Interpreter调用的代码

编写代码

例子代码

验证代码


发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Close Bitnami banner
Bitnami