Azkaban 自定义插件开发与安装
Akzban的插件好处就是拓展性好,热插拔,支持多种不同任务类型。每种插件的作业调度都会起一个单独的进程去处理,ProcessJob就是负责起作业进程的类,而JavaProcessJob继承它,是一个特化的java进程,我们自定义的插件,只要继承JavaProcessJob,实现具体执行即可
为了方便测试,这里直接简单实现,路径固定写(可以从用户配置中获取);
从hdfs下载文件到本地
一、把项目打成jar包 例子中是 demo-plugin-hdfs-1.0-SNAPSHOT.jar
二、在azkaban创建目录插件类型下面新建一个文件夹,注意文件夹名称就是插件名称,本例新建 hdfsTM,然后把插件项目jar包上传到目录下
三、新建两个配置文件
plugin.properties 可以为空
private.properties 配置以下内容
# 插件调度的类
jobtype.class=com.demo.plugin.HdfsDemo
# 插件中使用到的依赖包路径,不设置的话,依赖包要与插件jar放在同一级
jobtype.lib.dir=${plugin.dir}/lib
四、重启executor节点
看到加载插件和插件的依赖成功
执行插件任务并验证
五、创建任务文件
然后打成zip包上传即可
六、最后运行任务看看效果(插件类型是hdfsTM,正常下载hdfs文件到本地)
七、总体来说,azkaban的自定义插件使用还是很方便,拓展性强,基于azkaban的调度,能解决大数据中的很多场景