使用服务器定时调度-执行kettle作业,进行ETL
/20 * * * * /shell脚本全路径/offline.sh >> //日志需要打印的目录路径/kettle/etl-logs/crontab-log/offline-kitchen-log_$(date+\%Y-\%m-\%d).log 2>&1。/全路径目录/data-integration/kitchen.sh /file /主作业全目录/offline.kjb /level Err
Kettle自带调度方式的缺陷:
程序必须始终运行:使用Kettle自带的调度功能时,Kettle程序必须始终运行:
1.导致内存的浪费
2.任务执行时若占用内存较高、或其他原因导致 spoon程序崩溃、无法持续调度ETL
3.服务器崩溃或重启,需要手动启动执行作业
故使用配置服务器自带的定时调度组件,提升调度稳定性
Linux系统:
1. 编写shell脚本,内容如下:
#!/bin/sh
. /etc/profile
/{kettle路径}/data-integration/kitchen.sh /file /{作业路径}/offline.kjb /level Error /logfile /{日志需要打印到的路径}/offline-kitchen.log
2. 使用crontab 进行定时配置,内容如下:
配置crontab,进入编辑页面
$ crontab -e
配置内容如下
# 20分钟执行一次
*/20 * * * * /{第一步创建的shell脚本路径}/offline.sh >> //{日志需要打印的路径}/offline-kitchen-log_$(date+\%Y-\%m-\%d).log 2>&1
配置好后键盘ESC,输入wq进行保存
验证调度配置:等待定时时间任务执行后配置的日志路径内查看执行日志
Windows系统:
1. 编写bat脚本,内容如下:
D:
cd {kettle路径}\data-integration\
kitchen.bat /file {作业路径}\offline.kjb /level Error /logfile {日志需要打印到的路径}\offline-kitchen.log
2. 使用windows计划任务 进行定时配置:
1.可以在任务栏的搜索框中输入“任务计划程序”关键字,然后从搜索结果中选择“打开”选项或者在开始菜单中搜索“控制面板”,然后打开控制面板并在搜索框中输入“任务计划程序”
2.配置定时任务,如下图
其他都默认点击下一页,一直到操作界面时,选择启动程序,然后选中步骤1创建的bat文件路径,如下图
配置该计划任务
验证调度配置:等待定时时间任务执行后配置的日志路径内查看执行日志
附:
Kettle作业运行日志级别:(配置在批处理文件的level 后的参数)
Nothing:没有日志,不显示任何输出。
Error:错误日志,仅显示错误信息。
Minimal:最小日志,使用最小的日志输出。
Basic:基本日志,缺省的日志级别。
Detailed:详细日志,给出日志输出的细节。
Debug:调试日志,用于调试目的,输出调试信息。
Rowlevel:行级日志,打印出每一行记录的信息。
若遇到调度时间周期不对的问题,需要检查并取消主作业入口START的定时,如下:
更多推荐
所有评论(0)