“我在spoon里面运行一个作业只要几秒种,但是在TASKCTL中运行却要好几十秒?”
“并行同时运行几个job,就把内存撑爆了,TASKCTL好占资源呀!”
TASKCTL中调用kettle作业,实际上是通过pan和kitchen命令去调用。每一次调用都会重新初始化kettle运行环境,这个过程占用大量的时间。并且每启动一个kettle运行环境都相当于启动一个JVM进程。每个JVM则会占用几百兆(默认设置)的内存。所以同时运行几个作业,也会消耗大量内存资源。极端情况则可能会导致kettle内存溢出,产生致命错误。
这次更新,采用直接调用kettle核心的方式来运行作业。使得调度效率大幅提高,消耗资源(不包含作业本身所耗资源)也大幅降低。并行执行多个作业也能轻松应对了。
一、安装部署:
1. 确保安装环境具备kettle程序目录
2. 下载好插件安装包taskctl-plugin-kettle_1.2.4.zip并解压至自定义安装目录
3. 进入安装目录,执行install命令。请注意:若是windows系统需要以管理员身份运行。
4. 按照install程序的提示,确定kettle安装目录和IP及端口和资源库等信息。
5. 安装完毕后会生成cprunsoapkjb.sh (调作业)和cprunsoapktr.sh(调转换) 脚本,根据提示分别放到TASKCTL的插件目录下。
6. 执行startup命令启动插件服务,安装完毕!
二、使用教程:
1. 在桌面软件Admin中配置好kettle插件(关联好cprunsoap*.sh插件脚本),如下图所示:
2. 通过Designer设计kettle调度流程如下代码:
<ktrjob> <name>ktr2</name> <progname>$HOME/mykettle/myktr.ktr</progname> <para>filename=output,line=$(msystime)</para> <jobdesc>核心调转换很快</jobdesc> </ktrjob> <kjbjob> <name>kjb5</name> <progname>$HOME/mykettle/mykjb.kjb</progname> <para>filename=output,line=$(msystime)</para> <jobdesc>Linux文件系统</jobdesc> </kjbjob>
3. 把示例mykettle.zip解压拷贝至插件安装环境下的 mykettle/目录(window环境请放至d:\mykettle):
4. 编译流程后运行作业。可观察到在mykettle目录下,kettle作业生产的输出文件。
三、常见问题及解答:
Q:我用的TASKCTL 5.1 版本,之前也安装过plugin-kettle-plugin1.0.x版本。怎么升级?
A:重新安装taskctl-plugin-kettle1.2.0即可。不需要admin中配置作业类型的操作。
Q:可以调kettle资源库的作业吗?
A:支持数据库资源库和文件型资源库。在插件安装过程中选择资源库类型DB(数据库资源库)或FILE(文件资源库)根据提示进行安装。
Q:调用windows平台的kettle作业,还需要安装TASKCTL的windows代理端吗?
A:不需要。该插件采用SOAP协议访问。只需要在windows环境安装该插件即可。
Q:提示“Can not Access the http://xxx.xxx.xxx.xxx:xxxx/ SoapAPIService”
A:需要执行startup命令启动插件服务,或检查8099(默认)端口是否打开。
Q:怎么传递参数给作业?
A:按照”para1=value2,para2=value2”的形式。需要在作业中预设好命名参数para1和para2。
Q:怎么调整作业的日志输出等级?
A:在插件的conf目录下,配置ctlconf.int文件。设置PLUGIN.KETTLE.LOGLEVEL=[kettle日志等级],并重新启动插件
Q:支持kettle哪些版本?
A:该插件在kettle 7.0上测试通过。理论上也支持其它kettle版本。
Q:插件日志保存多久?
A:30天
四、更新说明:
2019-06-02:
1、适配最新的kettle8.2版本(不再支持kettle4低版本)。
2、优化安装程序:Windows环境自动打开相应服务端口。
3、优化lib库加载方式(默认加载kettle产品目录下的lib及plugins文件夹下的所有jar包)。
2018-09-01:
1、修改加载.kettle simple-jndi 等配置文件的BUG
2、默认加载plugins文件夹
3、修正linux端日志换行的问题
4、适配kettle 8.1
2017-12-14:
1、新增停止插件 cpstopsoapjob.sh
2、适配TASKCTL 5.1
2017-11-21:
1、适配kettle 4/5/6/7版本
2、修正安装程序bug
[最后编辑于 2022-05-14 14:05 ]
请登录后评论~