天天看點

spoon在linux上運作,kettle在linux上運作

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 指令進行啟動