kettle吧 关注:821贴子:2,252
  • 5回复贴,共1

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

只看楼主收藏回复

“我在spoon里面运行一个作业只要几秒种,但是在命令行中运行却要好几十秒?”
“并行同时运行几个job,就把内存撑爆了,Kettle好占资源呀!”
Kettle作为用户规模最多的开源ETL工具,强大简洁的功能深受广大ETL从业者的欢迎。但kettle本身的调度监控功能却非常弱。连Pentaho官方都建议采用crontab(Unix平台)和计划任务(Windows平台)来完成调度功能。调用kettle作业,实际上是通过pan和kitchen命令去调用。每一次调用都会重新初始化kettle运行环境,这个过程占用大量的时间。并且每启动一个kettle运行环境都相当于启动一个JVM进程。每个JVM则会占用几百兆(默认设置)的内存。所以同时运行几个作业,也会消耗大量内存资源。极端情况则可能会导致kettle内存溢出,产生致命错误。
https://my.oschina.net/u/944575/blog/1557410
http://www.taskctl.com/forum/detail_124.html
上述是Taskctl出的解决方案,但是如果我本身不愿意在多学习一个调度工具,其实也是可以用这个的。安装这个服务后,默认会生成两个调度插件,分别对应trans和job两种类型的。我们现在需要做的就是用crontab调用调度插件,配合着正确的参数值,就可以正常调度了,非常简单,而且效率也很高。
下面是我调度Linux下kettle配置的一个crontab范例,仅供大家参考
0 0 * * * /home/kettle/shell/cprunsoapktr.sh “/home/kettle/mykettle/my.ktr” “” “”
这个是我们trans作业。是直接调用文件,而且也没有参数,如果有差异,在安装服务是按需选择,调用的时候有细微的差异。执行效率比原来有大幅的提升,而且也不在开辟多个JVM环境,造成服务器资源的问题


1楼2017-11-09 10:15回复
    转载自 http://www.ukettle.org/thread-1485-1-1.html


    2楼2017-11-09 10:15
    回复
      不是说kettle很火吗?为什么贴吧人不多呀


      3楼2017-11-17 10:43
      回复
        想要提高效率的话,方法是有很多的
        1、先列出每天的工作任务,还需要根据工作时间来进行合理的分配,这样就可以列出工作计划列表并规划好完成的起止时间了。
        2、接下来要做的就是督促按时完成工作计划,最后进行工作总结了,可以提高我们的时间管理能力和工作效率
        3、使用云便签就可以添加每天的工作计划,并设置定时提醒,还能够将所有标记完成的工作计划进行总结


        IP属地:河南4楼2022-04-27 06:54
        回复
          可以用kettle工具-KettlePack


          5楼2022-05-27 16:13
          收起回复