续前面开发好的kettle项目上传到了生产环境,如何将job执行起来
本文介绍使用shell调用kettle job实现数据调度功能。
主要功能:
1、使用shell调用kettle job
2、通过crontab定时调度shell
首先创建一个shell脚本,在存放kettle的data-integration的所在目录下,创建两个文件夹,一个是存放调度的shell脚本kettle_dispatch_shell,一个用来存放日志kettle_dispatch_log
接下来就是在kettle_dispatch_shell,通过vim job_dispatch.sh命令写shell脚本
#!/usr/bin/bash
#判断日志文件夹是否存在,不存在则创建
#以天为单位保存日志
log_date_dir=`date '+%Y%m%d_log'`
log_dir=/data/kettle/kettle_dispatch_log/$log_date_dir
#echo $log_dir
#判断日志文件目录是否存在
if [ -d $log_dir ];
then
echo $log_dir exists!
else
#日志目录不存在则创建
mkdir $log_dir
fi
#执行读取到的JOB,需配置连接kettle的用户名 密码,指定日志存储位置
/data/kettle/data-integration/./kitchen.sh -rep=kettle_orp -user=admin -pass=admin -level=Basic -dir /JOB -job=dispatch_job >$log_dir/"dispatch_job"
然后我们直接通过sh job_dispatch.sh执行看是否执行报错,没问题后我们开始通过crontab定时调度shell
首先你需要看下是否安装crontab和是否开启
然后 crontab -e 编辑
SHELL=/usr/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
#*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com
00 05 * * * /data/kettle/kettle_dispatch_shell/job_dispatch.sh
以上为完成流程,实现了定时调度kettle job
这里有几个注意事项
crontab在写shell路径的时候也需要使用绝对路径,配置环境SHELL、PATH、HOME等
参考文献: