一、目的
由于用海豚调度器调度从Kafka到HDFS的kettle任务时发现有点问题,如果不设置定时调度,这个kettle任务会一直跑,而如果设置定时调度,隔天后就会生成多个任务,而且每个任务都在跑,不会停下,于是尝试用Crontab定时任务调度Kettle的从Kafka到HDFS任务。
结果:失败告终,还是一直再跑,虽然我设置了时间段。
但也算学会了Crontab定时任务调度,于是整理成博客
二、调度过程
(一)第一步,是kettle任务的运行脚本01_Kafka_to_HDFS_queue.sh
#!/bin/bash
source /etc/profile
/opt/install/kettle9.2/data-integration/pan.sh -rep=hurys_linux_kettle_repository -user=admin -pass=admin -dir=/kafka_to_hdfs/ -trans=01_Kafka_to_HDFS_queue level=Basic >>/home/log/kettle/01_Kafka_to_HDFS_queue_`date +%Y%m%d`.log
(二)第二步,是Crontab定时任务调度
1、输入crontab -e 进入编写(分、时、月、年、周)
SHELL=/bin/bash
# */1 * * * * /bin/sh /opt/install/kettle9.2/kettle_job_sh/test2.sh
06-07 17 * * * /bin/sh /opt/install/kettle9.2/kettle_job_sh/01_Kafka_to_HDFS_queue.sh
如06-07 17 * * * 意思是每天的17点的6分到7分中执行
2、编辑好后可以 crontab -l 命令查看
3、时间到了后可以到脚本里kettle的日志文件去确认是否执行
我设置时间为17点的6分到7分执行,但是一直到17点14分kettle任务还在跑
当然,HDFS中确实生成了9月1日今日的文件,而且任务运行时间是我设置的17点7分
说明,我在Crontab里设置的17点7分不是任务的结束时间,而是任务的执行开始时间
还要尝试其他的方法,不亦悲乎?