Linux下定时调度kettle的转换或作业 [

Posted on Posted in kettle经验分享



一、个人的测试环境

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里的任务了。

感谢黑洞的友情支持!并附上win下面的调度的帖子:

【教程】在win上面定时调度kettle的转化或者JOB

http://www.ukettle.org/forum.php?mod=viewthread&tid=277&fromuid=2

(出处: Pentaho | Kettle)