欢迎使用CSDN-markdown编辑器

来源:互联网 发布:温州龙湾网络问政 编辑:程序博客网 时间:2024/06/06 05:14

Zeppelin 自定义interpreter插件开发

原理简介

Interpreter
Zeppelin中最核心的概念是Interpreter,interpreter是一个插件允许用户使用一个指定的语言或数据处理器。每一个Interpreter都属于一个InterpreterGroup,同一个InterpreterGroup的Interpreters可以相互引用,例如SparkSqlInterpreter 可以引用 SparkInterpreter 以获取 SparkContext,因为他们属于同一个InterpreterGroup。当前已经实现的Interpreter有spark解释器,python解释器,SparkSQL解释器,JDBC,Markdown和shell等。下图是Zeppelin官网中介绍Interpreter的原理图。

这里写图片描述

Interpreter接口中最重要的方法是open,close,interpert三个方法,另外还有cancel,gerProgress,completion等方法。

Open 是初始化部分,只会调用一次。
Close 是关闭释放资源的接口,只会调用一次。
Interpret 会运行一段代码并返回结果,同步执行方式。
Cancel可选的接口,用于结束interpret方法
getPregress 方法获取interpret的百分比进度
completion 基于游标位置获取结束列表,实现这个接口可以实现自动结束

自定义解析器可以按照以下步骤实现:

根据后台应用,继承org.apache.zeppelin.interpreter并实现自定义interpreter类,例如HBase的解释器
这里写图片描述

在zeppelin的interpreter文件夹下创建文件夹(以自定义解析器的名称命名),并放入自定义解析器的jar包
这里写图片描述
修改interpreter-setting.json文件,一般位于{ZEPPELIN_INTERPRETER_DIR}/{YOUR_OWN_INTERPRETER_DIR}/
interpreter-setting.json,示例如下:
这里写图片描述

这里写图片描述

group :每个Interpreter都属于一个InterpreterGroup,
name :每个Interpreter的名字
className:类
properties:配置信息