解决kettle调度效率低,不可高并发调度方法

“我在spoon里面运行一个做业只要几秒种,可是在命令行中运行却要好几十秒?”html

“并行同时运行几个job,就把内存撑爆了,Kettle好占资源呀!”shell

 

Kettle做为用户规模最多的开源ETL工具,强大简洁的功能深受广大ETL从业者的欢迎。但kettle自己的调度监控功能却很是弱。连Pentaho官方都建议采用crontab(Unix平台)和计划任务(Windows平台)来完成调度功能。调用kettle做业,其实是经过pan和kitchen命令去调用。每一次调用都会从新初始化kettle运行环境,这个过程占用大量的时间。而且每启动一个kettle运行环境都至关于启动一个JVM进程。每一个JVM则会占用几百兆(默认设置)的内存。因此同时运行几个做业,也会消耗大量内存资源。极端状况则可能会致使kettle内存溢出,产生致命错误。服务器

http://www.javashuo.com/article/p-rxfpnpww-gk.html工具

http://www.taskctl.com/forum/detail_124.html学习

上述是Taskctl出的解决方案,可是若是我自己不肯意在多学习一个调度工具,其实也是能够用这个的。安装这个服务后,默认会生成两个调度插件,分别对应trans和job两种类型的。咱们如今须要作的就是用crontab调用调度插件,配合着正确的参数值,就能够正常调度了,很是简单,并且效率也很高。.net

下面是我调度Linux下kettle配置的一个crontab范例,仅供你们参考插件

0 0 * * * /home/kettle/shell/cprunsoapktr.sh “/home/kettle/mykettle/my.ktr” “” “”命令行

这个是咱们trans做业。是直接调用文件,并且也没有参数,若是有差别,在安装服务是按需选择,调用的时候有细微的差别。执行效率比原来有大幅的提高,并且也不在开辟多个JVM环境,形成服务器资源的问题htm

相关文章
相关标签/搜索