TASKCTL默认采用pan命令方式调度kettle转换作业。除此之外,我们还提供了taskctl-plugin-kettle(Soap服务)插件的方式驱动kettle转换。相比原生的pan命令,Soap服务直接驱动kettle核心进行调度。资源消耗更低、速度更快,支持高并发。

kettle 更新MongoDB 驱动 kettle添加驱动_大数据

一 安装taskctl-plugin-kettle服务

1 确保安装环境(unix/windows)具备kettle程序目录

2 下载taskctl-plugin-kettle_1.2.3.zip,解压后进入目录,执行install命令

3 按照install程序提示,确定安装信息: 

kettle 更新MongoDB 驱动 kettle添加驱动_kettle 更新MongoDB 驱动_02

4 安装完毕!生成cprunsoapktr.sh文件(注释部分已含调度示例,请查看)。

5 执行startup命令启动插件Soap服务。

注:windows需以“管理员身份运行”命令。

 

二 在Admin中配置插件

1 拷贝生成的cprunsoapktr.sh至调度服务(或代理)端插件目录,例如:

$TASKCTLDIR/src/plugin/ktrjob/shell/cprunsoapktr.sh

2 更改ktrjob作业类型的执行程序为新插件。

kettle 更新MongoDB 驱动 kettle添加驱动_分布式_03

至此,taskctl-plugin-kettle插件的安装与配置过程完毕。

三 作业是什么(what)

(一) 主要属性xml标签:

.ktrjob:表示是一个kettle转换作业类型

.name: 作业名称,在一个容器(流程或定时器)中不能重复

.progname:被调kettle转换作业的完整路径及名称,如下两种情况(资源库/文件系统):当调用资源库时为“资源库路径/转换名称”;当调用文件系统的转换时为“文件目录/转换文件名”

.para:kettle命名参数,格式为:参数名1=参数值1,参数名2=参数值2,...

.exppara: kettle资源库名,资源库用户名,密码等环境信息,与安装时的配置信息一致。

字段

名称

说明

rep

资源库名

 

user

资源库用户

 

pass

资源库密码

 

.jobdesc:作业描述信息

 

(二) 调度示例:

调度范例请参考cprunsoapktr.sh注释部分

kettle 更新MongoDB 驱动 kettle添加驱动_大数据_04

 

四 作业在哪里运行(where)

1 对于单机调度模式来,不用关心作业在哪里运行. 系统缺省就在调度服务本地环境运行。

2 如果您的作业不在调度服务环境,而是在远程指定代理环境,我们就需要定义agentid 。

3 kettle目前不支持无代理模式。hostuser属性无效。

具体参考 作业属性-agentid&hostuser

五 控制策略-作业在什么情况下运行(how)

在TASKCTL中,一旦您完成以上定义,作业就具备基本的运行条件。对绝大数作业定义来说,无需更多作业控制策略的定义。

如果在一个串并流程中,如果您需要对某些作业做更多的控制,比如,错误自动重跑,特别的执行计划等。这时候,就需要设置更多控制属性。具体参考 作业属性总体概括中的-控制策略

六 关于ktrjob返回值的申明

对于ktrjob返回值,由ktrjob对应的驱动插件决定。ktrjob执行成功返回0,错误返回1。

七  使用要点及相关知识

1 关于ktr转换的名称应分清倒底是资源库还是文件系统

2 日志乱码请参见:日志乱码解决方法

3 Soap服务默认端口为8099,需开放此端口

4 若需中断转换作业,请仿照步骤二配置cpstopsoapjob.sh插件。