現需要在某台服務器上安裝Kettle8.3,但該機器的JDK版本是JDK1.7,因此需要為Kettle單獨指定 JAVA_HOME,方法如下:
vi data-integration/set-pentaho-env.sh,顯式設置 JAVA_HOME。
kettle安裝部署步驟:
1. 將kettle安裝包上傳解壓,安裝完成之后,在kettle/data-integration下執行 ./kitchen.sh ,測試是否安裝完成,顯示幫助信息則表示安裝成功。
2. 將commons-codec-1.11.jar,mysql-connector-java-5.1.46包拷貝進入kettle安裝目錄下的lib文件夾下,由於在linux下,需將lib下的jar包全拷貝進入libswt/linux下的x86及x86_64;
cp -r /hsdata/kettle/data-integration/lib/* /hsdata/kettle/data-integration/libswt/linux/x86 cp -r /hsdata/kettle/data-integration/lib/* /hsdata/kettle/data-integration/libswt/linux/x86_64
3. 查找並配置.kettle的屬性文件(一般會在登錄用戶文件夾下,用ls -a 查看是否有.kettle隱藏文件夾,若沒有則需要copy上傳);
kettle.properties內容如下:
#數據文件輸出地址 FILE_OUTPUT_DIR={kettle文件夾絕對路徑}/business/data_sync #轉換或作業文件地址 FILE_JOB_DIR={kettle文件夾絕對路徑}/job #sftp上傳配置 SFTP_PATH={上傳文件夾的絕對路徑} (如:/home/zang/upload) SFTP_IP={sftp的ip地址} SFTP_PORT={sftp端口} SFTP_USERNAME={sftp用戶名} SFTP_PASSWORD={sftp密碼} #mysql鏈接配置(信貸賬戶) MYSQL_INPUT_IP={mysql的ip地址} MYSQL_INPUT_PORT={mysql端口} MYSQL_INPUT_USERNAME={mysql用戶名} MYSQL_INPUT_PASSWORD={mysql密碼} MYSQL_INPUT_DATABASE={mysql庫名} (默認值:asset) #mysql鏈接配置2 MYSQL_INPUT_IP2={mysql的ip地址} MYSQL_INPUT_PORT2={mysql端口} MYSQL_INPUT_USERNAME2={mysql用戶名} MYSQL_INPUT_PASSWORD2={mysql密碼} MYSQL_INPUT_DATABASE2={mysql庫名} (默認值:tamcx)
4. 在kettle文件夾下,創建job(存放轉換或者作業文件),shells(存放執行腳本文件),business/data_sync(存放數據輸出文件)等3個文件夾;
如下:
通過編輯shells中腳本,讓其調度job下的dataAndCheckOutput.kjb作業,dataAndCheckOutput.kjb作業用於生成文件到business/data_sync,同時生成調度日志。
#!/bin/sh export JAVA_HOME=/usr/java/jdk/jdk1.8.0_172 export JRE_HOME=/usr/java/jdk/jdk1.8.0_172/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH time=$( date "+%Y-%m-%d") /xxx/kettle/data-integration/kitchen.sh -file=/xxx/kettle/job/dataAndCheckOutput.kjb > /xxx/logs/kettle/kettle-$time.log