前提
kettle是純java編寫的etl開源工具,目前kettle7和kettle8都需要java8或者以上才能正常運行。所以運行kettle前先檢查java環(huán)境是否正確配置,java版本是否是8或者以上。
kettle安裝
1、創(chuàng)建kettle目錄,并將kettle的zip包解壓到kettle目錄下
sudo unzip pdi-ce-8.2.0.0-342.zip
mv data-integration/ ./kettle/
2、查看以下sh文件使用都有執(zhí)行的權(quán)限,如果沒有請加上
3、執(zhí)行kitchen.sh腳本
執(zhí)行后如果出現(xiàn)warning,根據(jù)提示安裝即可,不然可能導(dǎo)致部分特性無法使用(主要是spoon的使用,如果是無界面環(huán)境,可以忽略)
以下是包warning需要安裝libwebkitgtk-1.0-0的詳細處理步驟
vim /etc/apt/sources.list
在文件的末尾添加;
deb http://cz.archive.ubuntu.com/ubuntu bionic main universe
執(zhí)行
sudo apt-get update
在Ubuntu更新源是,提示"沒有數(shù)字簽名。無法安全地用該源進行更新,所以默認禁用該源",主要原因是由于apt-get update沒有公鑰,無法驗證下列簽名。
處理方法
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
3B4FE6ACC0B21F32是缺少的密鑰,缺少什么就下什么
執(zhí)行安裝
sudo apt-get install libwebkitgtk-1.0-0
有點慢耐心等待。。。
重新執(zhí)行kitchen.sh腳本
安裝好以后,warngin就沒有了。出現(xiàn)以下的提示界面說明kettle可以正常使用了。
同時home目錄下應(yīng)該會有一個.kettle的目錄。
./spoon.sh
kettle轉(zhuǎn)換與作業(yè)執(zhí)行
在kettle中pan和kitchen兩個工具分別用來執(zhí)行transformation
(轉(zhuǎn)換)和job(作業(yè)),如下所示
對于文件存儲,不是數(shù)據(jù)庫資源庫,可以如下的方式存放文件:
所有的transformation文件存放在/srv/kettle/transfomation/
所有的job文件存放在/srv/kettle/jobs
所有的日志文件存放在/var/kettle/logs
1、使用pan執(zhí)行transformation
pan語法
./pan.sh -option=value arg1 arg2
eg:
sudo ./pan.sh -file=/srv/kettle/transformation/EtltestTrans.ktr -level=Detailed > /var/kettle/log/EtltensTrans.log &
2、使用kitchen執(zhí)行job
kitchen語法
./kitchen.sh -option=value arg1 arg2
eg
sudo ./kitchen.sh -file=/srv/kettle/jobs/EtltesJob.kjb -level=Detailed > /var/kettle/logs/EtltestJob.log &
常用參數(shù)列表:
kettle服務(wù)器端部署
1、通過Start組件定時執(zhí)行任務(wù)
在kettle中我們可以通過start組件來設(shè)置定時任務(wù),如下所示,這種方式不推薦使用,因為該job會一直占有一個進程,容易內(nèi)存溢出。
2、通過crontab執(zhí)行kettle任務(wù)
在linux中crontab是用來提交和管理用戶周期性執(zhí)行的任務(wù)。
例如(文件存儲位置):
所有的transformation文件存放在/srv/kettle/transformtions/
所有的job文件存放在/srv/kettle/jobs/
所有的日志文件存放在/var/kettle/logs/
所有的執(zhí)行腳本存放在/srv/kettle/script/
1)首先我們創(chuàng)建一個腳本。因為是crontab執(zhí)行任務(wù),我們需要重新配置導(dǎo)入java配置。
export JRE_HOME=/opt/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#cd workspace
cd /opt/kettle/data-integration/
# exec job
./kitchen.sh -file=/srv/kettle/jobs/EtltestJob.kjb -level=Detailed > /var/kettle/logs/EtltestJob.log
2)在終端上,鍵入“contab -e” ,進入定時任務(wù)文件,添加任務(wù)。
# m h dom mon dow command
0 2 * * * /srv/kettle/script
3)重啟cron并查看任務(wù)
3、kettle通過carte遠程調(diào)度
kettle的部署有很多種模式,上面講的是最原生的模式(pan/kitchen)。但是這種方式不利于監(jiān)控、調(diào)度和資源分配。kettle本身提供了一個用于調(diào)度的web服務(wù)carte。carte允許遠程請求http進行監(jiān)控、啟動、停止在carte服務(wù)上運行的job和trans。要部署使用carte的大致過程如下所示:
1)修改xml配置文件
vim carte-config-master-8080.xml
在kettle.pwd的描述中可以知道默認的用戶名密碼都是cluster(不放心的話可以通過和節(jié)點設(shè)置用戶名密碼),如果要修改密碼可以在配置文件中配置
2)啟動carte
啟動時將剛剛的配置文件加上
nohub ./carte.sh pwd/carte-config-master-8080.xml &
啟動完成后就可以訪問carte了,界面非常的簡陋。
3)配置子服務(wù)器
上面是成功的將carte服務(wù)打開,下面就需要將spoon連接到carte。在左側(cè)的樹中我們需要添加一個子服務(wù)器。如下所示:
文章來源:http://www.zghlxwxcb.cn/news/detail-679225.html
4)創(chuàng)建一個新的運行配置,setting選擇slave server
文章來源地址http://www.zghlxwxcb.cn/news/detail-679225.html
5)提交任務(wù)
到了這里,關(guān)于ubuntu22安裝和部署Kettle8.2的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!