「我在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