在centos7下設定kettle定時任務
環境
centos7
jdk1.8.141
kettle7.1
1. 確定本地已配置好java1.8環境,將kettle安裝包複製到linux目錄下,unzip解壓
2. 執行kitchen.sh 可以看到相關命令說明環境配置無誤,
3. 如顯示BASH:/ kitchen.sh的:許可權被拒絕,需要給.sh檔案執行許可權
命令為:chmod a+x*.sh
4. 在建立kettle專案前,檢查是否已將需要用到的資料庫JDBC包放置到kettle目錄lib檔案下
5. 可以在windows中編輯好專案所需的ktr、kjb檔案,複製到centos7中
6.
7. 執行sh kitchen.sh –file/home/etl/jobtest.kjb,測試在centos環境下執行無誤
8. 執行vi schedule.sh 新建.sh檔案,因為定時任務crond不能呼叫自定義環境變數,使用kettle時必須申明java環境
export JAVA_HOME=/usr/java/jdk1.8.0_141
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
/home/data-integration/kitchen.sh -file /home/etl/job_test.kjb-logfile /home/etl/log/`data +%y%m%d`(注意此處為~鍵`不是單引號’)
9. 儲存後,執行chmod a+x *.sh給schedule.sh新增執行許可權
10.執行 crontab –e 編輯定時任務
*/5 * * * * bash /home/etl/ schedule.sh表示每隔5分鐘執行一次schedule.sh
11. 儲存後,執行crontab–l檢視定時任務是否已載入
12. 執行systemctl restartcrond重啟定時任務,執行service crond status檢視crontab服務狀態
13. 在資料庫檢視kettle任務是否正確執行
注意: 在windows中編輯的txt、bat等文字檔案放到centos環境下改為.sh檔案不能執行,因為符號及編碼方式不同會報錯