一、个人的测试环境
1、 系统:CentOS6.564位
2、 Kettle版本:5.3
二、具体的调度配置过程
请先准备好可以正常运行的job或者transformation再继续下面的过程,这里以调度job为例子(请确保你所使用的用户拥有crontab的权限,我这里使用root用户进行演示,其他用户也可以)。
1、 编写Linux下的.sh脚本文件,如图1所示为我所编写的mykettle.sh脚本内容,记得在编写完成后给该文件赋予可执行的权限chmod 755 mykettle.sh:
图1
脚本的含义:使用/home/hadoop/Documents/data-integration/kitchen.sh这个脚本,去执行/root/Documents/KettleTest/myTestJob.kjb这个作业。这里我没有使用资源库,只是使用了文件,所以参数为/file,如果需要输出日志,请加上如下的语句:/level=basic>>/root/Documents/KettleTest/kettle_`date+%Y%m%d`.log,这里就会在目录下生成对应kettle_yyyymmdd.log日期形式的日志文件了。
更正之前的一个参数问题:/norep并不是表示不使用资源库,而是不往资源库中写日志。大家可以直接运行kitchen.sh命令而不加任何参数,里面会把相关参数的意思显示出来。如图2所示:
图2
2、 配置crontab例行性工作排程
1)先补充点crontab的必要知识。crontab例行性工作可以直接在/etc/crontab中进行配置,但是不建议这样子做,因为有可能会因为输入法的问题而导致无法运行。我们使用crontab–e来进行编辑。
下面来看下使用crontab –e进入编辑界面后的六个字段参数说明:
字段:* * * * * 命令串
释义:分 时 日 月 周 具体要执行的命令或者脚本等
上面的*表示具体的时间数字,在实际应用中,要替换成有意义的数据。
具体六个字段的意义及取值范围如图3所示:
图3
详细的参数说明如图4所示:
图4
2)在理解了这些基本的知识后,下面开始配置我们的例行性计划任务吧。
输入crontab–e进入编辑界面,在编辑界面进行计划任务的设置。我的演示计划设置如图5所示:
图5
上面命令的意义是:每天22:36分就会执行/root/Documents/KettleTest/mykettle.sh脚本,而且该脚本的内容就是执行我们的job。这样就实现了每天这个时间点就执行调度的工作了^_^。
在配置完成后,可以通过crontab–l进行查询配置好的例行性任务。如图6所示:
图6
3)告诉大家一个小窍门,在/var/spoon/mail/root文件中会记得所有例行性任务的日志信息,cat /var/spoon/mail/用户名,可以查看到所有相关的例行性任务执行的日志信息。
下面我贴上我执行上面这个job时的日志信息,如图7所示:
图7
至此,整个例行性任务调度配置完成,以后每天这个点,都会执行job里的任务了。
感谢黑洞的友情支持!