1.在windows系統上用kettle生成轉換和作業,運作成功之後可以放到linux上運作
注意:一定確定在Windows上是能正确運作的
2.找到kettle生成的轉換文檔,傳入到linux系統中用pan.sh運作測試能否成功
cd data-integration
目錄下能夠找到pan.sh
ll
drwxrwxr-x 2 hadoop hadoop 4096 Jul 31 19:47 kettle_file
drwxrwxr-x 2 hadoop hadoop 4096 Aug 28 11:36 kettle_logs
-rw-r--r-- 1 hadoop hadoop 184 May 16 2017 Kitchen.bat
-rwxr-xr-x 1 hadoop hadoop 354 May 16 2017 kitchen.sh
drwxr-xr-x 2 hadoop hadoop 4096 May 16 2017 launcher
drwxr-xr-x 2 hadoop hadoop 20480 Jul 31 18:39 lib
drwxr-xr-x 6 hadoop hadoop 4096 May 16 2017 libswt
-rw-r--r-- 1 hadoop hadoop 13366 May 16 2017 LICENSE.txt
-rw-r--r-- 1 hadoop hadoop 172 May 16 2017 Pan.bat
-rwxr-xr-x 1 hadoop hadoop 320 May 16 2017 pan.sh
用ll指令查詢pan.sh是否有權限,如果沒有用指令
chmod +x *.sh
3.開始執行
./pan.sh -file /home/kettle_file/tran.ktr
4.運作作業過程是一樣的,隻不過要注意job中的每個transform位址都是Windows系統上的,需要改成linux系統中的位址
轉換01
TRANS
filename
/home/kettle_file/tran.ktr
然後執行:
./kitchen.sh -file /home/kettle_file/job.kjb
5.linux 上的定時排程
先建立一個腳本test.sh,需要先修改test.sh 的權限,cd到test.sh所在的檔案夾下面,然後運作chmod +x *.sh,這是給目前路徑下的所有 .sh 結尾的文檔都修改了權限,chmod +x test.sh,是給本文檔修改權限。
vi test.sh
打開test.sh 進行編輯:
export JAVA_HOME=/opt/jdk1.8.0_73
export PATH=${JAVA_HOME}/bin:${PATH}
/home/data-integration/pan.sh -file /home/kettle_file/tran.ktr > /home/kettle_logs/log.txt
第一二條是指的java的路徑,不指定的話會找不到java路徑,報錯!
第三條是運作指令,用的都是絕對路徑,後面指定了日志存儲路徑,可以直接去log.txt檢視日志。
指定定時排程:
crontab -e
進入編輯頁面:
*/2 * * * * /home/data/test.sh
意思是每兩分鐘執行一次,後面用的也是絕對路徑
01 08 23 02 * /home/data/test.sh
01分鐘,08小時,23日,02月, * 星期
這個意思是每個2月23日8時1分執行一次
[[email protected] ~]$crontab -l
01 08 23 02 * /home/data/test.sh
用來查詢排程指令是否儲存成功
[[email protected] ~]$service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-07-30 14:02:03 CST; 2 months 19 days ago
Main PID: 743 (crond)
CGroup: /system.slice/crond.service
└─743 /usr/sbin/crond -n
service crond status 用來檢視任務是否啟動
Active: active (running) 狀态證明已經打開了
如果顯示Active: failed
使用service crond start 指令進行啟動