CentOS(Linux)安装KETTLE教程 并配置执行定时任务
1,首先是安装jdk,并设置环境变量
采用yum安装可不设置环境变量
2,下载kettle
https://sourceforge.net/projects/pentaho/files/Data%20Integration/
请选择我们当前工作的版本7.0
可以使用如下命名直接下载
wget -c --output-document=pdi-ce-7.0.0.0-25.zip https://nchc.dl.sourceforge.net/project/pentaho/Data%20Integration/7.0/pdi-ce-7.0.0.0-25.zip
3,使用unzip命令对这个压缩包进行解压
unzip pdi-ce-7.0.0.0-25.zip -d "/opt/kettle"
4,解压后给予相应文件可执行权限
进入到/opt/kettle/data-integration
授予 *.sh +x权限 即可执行权限
5,执行转换
编写测试转换,执行如下命令即可
/opt/kettle-spoon/data-integration/pan.sh -file=/opt/kettle-spoon/ktr/test/test1.ktr log=test1.log
6,执行job
sudo /opt/kettle-spoon/data-integration/kitchen.sh -file=/opt/kettle-spoon/ktr/test/SechuldUpdate.kjb log=timeLogUpdate.log
(如果是job需要定时,如果我们需要执行的是一个job,则可跳过下列步骤,直接在job里设置定时参数即可 )
job和ktr的路径变量问题需要注意,也可以直接写绝对路径
7,配置定时任务
7.1,如果是转换文件需要定时
可以按照如下方法操作,创建一个文件 test.sh
在这个文件里写入如下语句
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64 export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH /opt/kettle-spoon/data-integration/pan.sh -file=/opt/kettle-spoon/ktr/test/Sechuld.kjb log=log.timelog ~data +%y%m%d~
然后给这个文件可执行权限 +x
然后运行 crontab –e 编辑定时任务
*/10 * * * * bash /home/etl/ schedule.sh表示每隔10分钟执行一次schedule.sh
然后保存,运行crontab–l查看定时任务是否已载入
运行systemctl restart crond重启定时任务,运行systemctl status crond查看crontab服务状态