Linux下部署kettle并配置定時(shí)調(diào)度過程
1、安裝JAVA
(1) 查看原系統(tǒng)版本,從圖中可以看出JDK版本為openJDK需要卸載,如果沒有安裝跳過即可
java -version

(2) 查看安裝信息
rpm -qa | grep java

(3) 卸載OPENJDK
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch rpm -e --nodeps tzdata-java-2018e-3.el7.noarch rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
(4) 下載對應(yīng)的JDK版本
這里我使用的kettle是9.1的,jdk-8u371-linux-x64.tar測試可用
tar -zxvf jdk-8u371-linux-x64.tar.gz
(5) 配置環(huán)境變量
vim /etc/profile
添加如下行:
export JAVA_HOME=/usr/local/jdk1.8.0_371 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH
使環(huán)境變量生效
source /etc/profile
(6) 驗(yàn)證JDK是否安裝成功
java -version

2、安裝kettle
(1) 將安裝包pdi-ce-9.1.0.0-324.zip上傳至linux服務(wù)器,(kettle在windows和linux系統(tǒng)中通用)
(2) 解壓
unzip -o -d /kettle/ pdi-ce-9.1.0.0-324.zip
(3) 安裝完成

3、同步kettle資源庫,及添加jar包
(1) 將Windows用戶文件夾下的.kettle文件打包壓縮

(2) 將.ketlte文件解壓到Linux的root目錄下,也就是~下,然后使用 ll -qa可查看
ll -qa

(3) 將依賴的jar包放在linux 的/kettle/data-integration/lib目錄下
- Oracle:ojdbc11.jar
- Mysql:mysql-connector-java-8.0.11.jar
另外需要將jar包放在/kettle/data-integration/libswt/linux下


4、測試能否執(zhí)行任務(wù)
./kitchen.sh -rep:xxxxxx -user:xxxxxx -pass:xxxxxx -dir:/xxxxxx -job:xxxxxx

發(fā)現(xiàn)有警告,原因是kettle需要圖形化的界面來運(yùn)行,linux是命令行模式,觸發(fā)警告,消除警告可安裝webkitgtk

5、安裝webkitgtk
yum install webkitgtk-2.4.9-1.el7.x86_64.rpm

再執(zhí)行./kitchen.sh,發(fā)現(xiàn)警告消除

6、配置調(diào)度
通過配置文件,將調(diào)度任務(wù)與資源庫里的文件名稱及目錄一致



配置文件腳本代碼:
#!/bin/bash
#進(jìn)入kettle目錄
cd /opt/kettle/data-integration9.1
#日志路徑
logpath=/opt/kettle/joblog/xxxxxxx/
#kitchen任務(wù)路徑
jobdir=/xxxxxxx/
#根據(jù)文件名獲得JOB名稱
jobname=`echo $0 |cut -d '.' -f 1`
#當(dāng)前時(shí)間、當(dāng)前小時(shí)
nowtime=`date +"%Y/%m/%d %H:%M:%S"`
nowdate=`date +%Y%m%d`
nowmon=`date +%Y%m`
nowhour=`date +%H`
#日志開頭
echo "
================================================執(zhí)行時(shí)間:"$(date +%Y%m%d%H%M%S)"=======================================================
" >> ${logpath}${jobname}${nowmon}.log
#上一次任務(wù)完成標(biāo)志
wcbz=`ps -ef |grep kitchen |grep ${jobname} |wc -l`
#上一次未結(jié)束則本次不執(zhí)行
if [ $wcbz -ne 0 ];then
echo ${nowtime}":上一次任務(wù)未結(jié)束,本次不執(zhí)行......" >> ${logpath}${jobname}${nowmon}.log
else echo ${nowtime}":上一次任務(wù)執(zhí)行結(jié)束,本次開始執(zhí)行.........">> ${logpath}${jobname}${nowmon}.log
sh kitchen.sh -rep:xxxxxxx -user:xxxxxxx -pass:xxxxxxx -dir:${jobdir} -job:${jobname} >> ${logpath}${jobname}${nowmon}.log 2>&1
fi
echo "本次JOB執(zhí)行任務(wù)已結(jié)束!" >> ${logpath}${jobname}${nowmon}.log
通過crontab定時(shí)調(diào)度如下腳本,例如:onedayjob.sh

crontab -e
i進(jìn)入編輯模式


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS 7.x NAT模式上網(wǎng)配置步驟詳解
本篇文章主要介紹了CentOS 7.x NAT模式上網(wǎng)配置步驟詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
詳解怎樣在Linux中配置靜態(tài)網(wǎng)絡(luò)連接
這篇文章主要介紹了詳解怎樣在Linux中配置靜態(tài)網(wǎng)絡(luò)連接,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
使用ssh-keygen,實(shí)現(xiàn)免密碼登陸linux的方法
下面小編就為大家?guī)硪黄褂胹sh-keygen,實(shí)現(xiàn)免密碼登陸linux的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Centos系統(tǒng)下“無法打開并寫入文件”問題的解決
這篇文章主要給大家介紹了關(guān)于在Centos系統(tǒng)下報(bào):“無法打開并寫入文件”問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

