Kettle自定义JDK版本(附Linux下安装部署步骤)
现需要在某台服务器上安装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.jar包拷贝进入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