环境
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中编辑好项目所需的ktr、kjb文件,复制到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 *.sh给schedule.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文件不能运行,因为符号及编码方式不同会报错