在centos7下设置kettle定时任务

时间:2022-06-30 08:07:59

环境

centos7

jdk1.8.141

kettle7.1

 

1.      确定本地已配置好java1.8环境,将kettle安装包复制到linux目录下,unzip解压

2.     运行kitchen.sh 可以看到相关命令说明环境配置无误,

3.     如显示BASH/ kitchen.sh的:权限被拒绝,需要给.sh文件执行权限

命令为:chmod a+x*.sh

4.     在建立kettle项目前,检查是否已将需要用到的数据库JDBC包放置到kettle目录lib文件下

5.     可以在windows中编辑好项目所需的ktrkjb文件,复制到centos7

6.     vi指令打开kjb文件,将文件中的ktr相对地址改为centos中的地址

7.     运行sh kitchen.sh –file/home/etl/jobtest.kjb,测试在centos环境下运行无误

8.      运行vischedule.sh 新建.sh文件,因为定时任务crond不能调用自定义环境变量,使用kettle时必须申明java环境

export JAVA_HOME=/usr/java/jdk1.8.0_141

export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH

/home/data-integration/kitchen.sh -file /home/etl/job_test.kjb-logfile /home/etl/log/`data +%y%m%d`(注意此处为~键`不是单引号’)

9. 保存后,运行chmod a+x *.shschedule.sh添加执行权限

10.运行 crontab –e编辑定时任务

*/5 * * * * bash /home/etl/ schedule.sh表示每隔5分钟执行一次schedule.sh

11.   保存后,运行crontab–l查看定时任务是否已载入

12.   运行systemctl restartcrond重启定时任务,运行service crond status查看crontab服务状态

13.   在数据库查看kettle任务是否正确执行

注意: 在windows中编辑的txt、bat等文本文件放到centos环境下改为.sh文件不能运行,因为符号及编码方式不同会报错