笔者kettle应用之前部署在window环境,作为开发环境。由于公司网络安全管理规定,要求kettle正式环境需要部署在linux环境下。因此需要进行环境迁移。
一、部署linux环境;
对于正式应用,建议新增单独用户,用来部署kettle和运行kettle
二、安装jdk;
建议安装jdk1.8.192,最后一个免费版本,避免引起版权问题
三、下载最新版本pdi,并ftp到linux环境的用户目录下
kettle目前已经更名为pdi,下载地址:kettle各个版本下载地址
kettle下载的文件直接在linux环境解压即可。
需要注意,解压后的文件,需要对kettle主目录下的.sh文件附加执行命令
chmod +x *.sh
建议下载最新版本,20211117目前最新版本是9.2
四、修改.kettle文件夹中的配置文件
window开发环境中,第一次运行kettle时,系统会自动在当前用户目标增加一个.kettle的文件夹。里面有2个重要的文件,在迁移前需要复制修改。
第一个文件是kettle.properties,里面存储了kettle应用的全局变量信息。在迁移到linux环境前,需要对里面的全局变量的对应文件目录进行修改,修改为linux环境project的相关目录;
第二个文件是shared.xml,里面存储了加密后的数据资源库配置信息,包括地址、用户、密码等,此文件一般无需修改,直接ftp到linux部署环境即可。
linux环境下,.kettle文件夹位于kettle的安装主目录data-integration下,是一个隐藏文件。
里面对应的2个文件就是window下.kettle文件夹的相关文件。
五、修改linux系统当前用户的.profile文件增加kettle目录,避免无法直接执行pan,kitchen等命令
由于kettle的正式环境是需要通过crontab命令调用定时任务的,所以需要对主目录下pan等命令文件进行重写DIR目录,将原来的相对目录地址改为绝对目录地址。
六、重新shell文件,增加配置信息
crontab命令执行是不载入用户配置变量信息的,所以无法通过crontab命令来直接执行pan等命令,需要新增一个shell文件,在shell文件中执行pan等命令。
#!/bin/bash
cd /prog/nanjA/kettle/data-integration
#需要导入jdk路径
export KETTLE_HOME=/prog/nanjA/kettle/data-integration
export JAVA_HOME=/usr/java/jdk1.8.0_192-amd64
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin:$KETTLE_HOME
#通过kitchen运行作业,每次运行产生一个日志
./pan.sh -file=/prog/nanjA/kettlework/sproject/A_Mob/dev/operateprpcmain.ktr -level=Basic >>/prog/nanjA/kettlework/slogfile/operateprpcmain_$(date "+%Y%m%d-%H%M%S").log
七、设置crontab,具体方法crontab -e,不再赘述