kettleforlinux
① linux上使用crond定時執行kettle的job怎麼解決
linux上使用crond定時執行kettle的job的解決方法:
一、部署kettle
1. 將pdi-ce-4.1.0-stable.zip上傳到Linux伺服器。
2. 使用unzip命令解壓pdi-ce-4.1.0-stable.zip
unzip pdi-ce-4.1.0-stable.zip -d "/mnt/kettle"
3. 賦予解壓目錄下.sh文件的執行權力chmod +x *.sh
4.進入解壓目錄,鍵入「./kitchen.sh」回車,如果有幫助信息則表示kettle環境部署成功。
二、接著,編寫執行kettle任務的shell腳本
創建test.sh,將以下內容復制粘貼到裡面,然後入「chmod+x/mnt/kettle/*.sh」,賦予test.sh執行許可權。
exportjava_HOME=/usr/java/jre1.6.0_23
exportPATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/mnt/kettle/data-integration/kitchen.sh-file=/mnt/kettle/test.kjb>/mnt/kettle/display.txt
說明:
前3行,設置Java環境變數的語句必不可少,因為crond是個守護進程,它不歸屬於任何用戶,雖然之前以root身份配置了java的環境變數,但是crond一樣找不到java命令,所以,當crond執行kettle任務時,需要動態設置java環境變數,crond才能找到java命令。
三、最後,使用crontab命令添加定時任務
1.在終端上,鍵入「crontab -e」,進入定時任務文件。
2.鍵入「a」,對文件進行編輯。
輸入如下內容: 23111002*/mnt/kettle/test.sh
其中 23為分鍾,11為小時,10為日,02為月,*為星期幾,crontab命令的使用這里不再贅述。
3.鍵盤敲擊exc,終端鍵入「:wq」,保存文件。
4.重啟crond服務。
鍵入「cd /etc/init.d」,進入該目錄。
鍵入「./crond restart」,重啟crond服務。
5.等待執行結果。
6.執行成功,oh..nice!
② linux下怎樣安裝使用kettle
安裝JDK環境:根據自己的linux系統選擇相應的版本,比如我的centos7是x64的,所以我選擇jdk-8u74-linux-x64.tar.gz下載
下載下來以後,我們將其移到我們創建的一個目錄中,存放tar包的目錄為/usr/local/src/jdk,然後解壓:
tar -zxf /usr/local/src/jdk/jdk-7u65-linux-x64.tar.gz
編輯 vi /etc/profile 文件
在文件後面添加:
export JAVA_HOME=/usr/local/src/jdk/jdk1.8.0_74
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$CLASSPATH:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
執行 . /etc/profile
配置成功後,關閉終端,重新進入,輸入java –version 如果出現版本號什麼的,就證明jdk安裝成功
1. 將data-integration文件夾直接拷貝到/usr/local/kettle文件夾下面
cd /usr/local/kettle/data-integration 進入該目錄
為所有.sh文件賦予執行許可權
chmod +x *.sh
然後在終端鍵入./kitchen.sh 如果出現幫助信息,說明kettle安裝成功
./kitchen.sh -----運行job
./span.sh -----運行轉換
1. 在kettle下建立data 文件夾,用來存放轉換和job文件
建立ktllog 文件夾,用來存放日誌文件
建立ktlsh 文件夾,用來存放腳本文件
1. 在ktlsh文件夾中新建執行job的文件,
新建文件命令: touch xxx.sh
並賦予文件執行權游脊限
chmod +x xxx.sh
編輯xxx.sh文件
Vi xxx.sh
輸入 :
#!/bin/sh
source /etc/profile 配置環境變數(使用crontab時候,由於crontab不識別系統的環境變數,所以需要我們這邊再配置一遍)
ROOT_TOPDIR=/usr/local/kettle
Export ROOT_TOPDIR --設置kettle目錄
$ROOT_TOPDIR/data-integration/kitchen.sh –file=需要執行的job的文件(絕對路徑)
保存!
可在ktlsh目錄下直接執行./塌態xxx.sh 文件運行
1. 配置crontab 定期執行作業或者轉換
基本格式 :
*****command
分時日月周命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要運行的命令
在crontab中配置自動每天12點30分執行xxx.sh文件
編輯crontab : crontab –e
增加一行
30 12 * * * /usr/loca/kettle/ktlsh/xxx.sh
如果要輸出日誌可
30 12 * * * /usr/loca/kettle/ktlsh/xxx.sh >> /usr/local/kettle/ktllog/log01
如果ktllog下面不存在log01文件會自動創建
配置完後神衫滲重啟crontab服務:
Service crond restart
查看crontab服務
Service crond status
查看crontab中的內容
Crontab –1