技術諮詢維信搜索 "kitleer" 備註 "諮詢"
更多文檔查詢關注公衆號 "taskctl"
“我在spoon裏面運行一個作業只要幾秒種,但是在TASKCTL中運行卻要好幾十秒?”
“並行同時運行幾個job,就把內存撐爆了,TASKCTL好佔資源呀!”
TASKCTL中調用kettle作業,實際上是通過pan和kitchen命令去調用。每一次調用都會重新初始化kettle運行環境,這個過程佔用大量的時間。並且每啓動一個kettle運行環境都相當於啓動一個JVM進程。每個JVM則會佔用幾百兆(默認設置)的內存。所以同時運行幾個作業,也會消耗大量內存資源。極端情況則可能會導致kettle內存溢出,產生致命錯誤。
這次更新,採用直接調用kettle核心的方式來運行作業。使得調度效率大幅提高,消耗資源(不包含作業本身所耗資源)也大幅降低。並行執行多個作業也能輕鬆應對了。
一、安裝部署:
1. 確保安裝環境具備kettle程序目錄
2. 下載好插件安裝包taskctl-plugin-kettle_1.0.5.zip並解壓至自定義安裝目錄
3. 進入安裝目錄,執行install命令。請注意windows環境需要以管理員身份運行。
4. 按照install程序的提示,確定kettle安裝目錄和IP及端口和資源庫等信息。
5. 安裝完畢後會生成cprunsoapkjb.sh (調作業)和cprunsoapktr.sh(調轉換) 腳本,根據提示分別放到TASKCTL的插件目錄下。
6. 執行startup命令啓動插件服務,安裝完畢!
二、使用教程:
1. 在桌面軟件Admin中配置好kettle插件,如下圖所示:
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:可以調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天
四、更新說明:
2017-12-14:
1、新增停止插件 cpstopsoapjob.sh
2、適配TASKCTL 5.1
2017-11-21:
1、適配kettle 4/5/6/7版本
2、修正安裝程序bug
————————————————
版權聲明:本文爲CSDN博主「筱茉莉」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u010192213/article/details/107042075