4.5、oozie的任务调度,定时任务执行

在oozie当中,主要是通过Coordinator 来实现任务的定时调度,与我们的workflow类似的,Coordinator 这个模块也是主要通过xml来进行配置即可,接下来我们就来看看如何配置Coordinator 来实现任务的定时调度

Coordinator 的调度主要可以有两种实现方式

第一种:基于时间的定时任务调度,

oozie基于时间的调度主要需要指定三个参数,第一个起始时间,第二个结束时间,第三个调度频率

第二种:基于数据的任务调度,只有在有了数据才会去出发执行

这种是基于数据的调度,只要在有了数据才会触发调度任务

oozie当中定时任务的设置

第一步:拷贝定时任务的调度模板

cd /export/servers/oozie-4.1.0-cdh5.14.0

cp -r examples/apps/cron oozie_works/cron-job

第二步:拷贝我们的hello.sh脚本

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works

cp shell/hello.sh  cron-job/

第三步:修改配置文件

修改job.properties

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/cron-job

vim job.properties

nameNode=hdfs://node01:8020

jobTracker=node01:8032

queueName=default

examplesRoot=oozie_works

oozie.coord.application.path=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/coordinator.xml

start=2018-08-22T19:20+0800

end=2019-08-22T19:20+0800

EXEC=hello.sh

workflowAppUri=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/workflow.xml

修改coordinator.xml

vim coordinator.xml

<!--

oozie的frequency 可以支持很多表达式,其中可以通过定时每分,或者每小时,或者每天,或者每月进行执行,也支持可以通过与linux的crontab表达式类似的写法来进行定时任务的执行

例如frequency 也可以写成以下方式

frequency="10 9 * * *"  每天上午的09:10:00开始执行任务

frequency="0 1 * * *"  每天凌晨的01:00开始执行任务

-->

<coordinator-app name="cron-job" frequency="${coord:minutes(1)}" start="${start}" end="${end}" timezone="GMT+0800"

xmlns="uri:oozie:coordinator:0.4">

<action>

<workflow>

<app-path>${workflowAppUri}</app-path>

<configuration>

<property>

<name>jobTracker</name>

<value>${jobTracker}</value>

</property>

<property>

<name>nameNode</name>

<value>${nameNode}</value>

</property>

<property>

<name>queueName</name>

<value>${queueName}</value>

</property>

</configuration>

</workflow>

</action>

</coordinator-app>

修改workflow.xml

vim workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.5" name="one-op-wf">

<start to="action1"/>

<action name="action1">

<shell xmlns="uri:oozie:shell-action:0.2">

<job-tracker>${jobTracker}</job-tracker>

<name-node>${nameNode}</name-node>

<configuration>

<property>

<name>mapred.job.queue.name</name>

<value>${queueName}</value>

</property>

</configuration>

<exec>${EXEC}</exec>

<!-- <argument>my_output=Hello Oozie</argument> -->

<file>/user/root/oozie_works/cron-job/${EXEC}#${EXEC}</file>

<capture-output/>

</shell>

<ok to="end"/>

<error to="end"/>

</action>

<end name="end"/>

</workflow-app>

第四步:上传到hdfs对应路径

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works

hdfs dfs -put cron-job/ /user/root/oozie_works/

第五步:运行定时任务

cd /export/servers/oozie-4.1.0-cdh5.14.0

bin/oozie job -oozie http://node03:11000/oozie -config oozie_works/cron-job/job.properties -run

oozie当中任务的查看以及杀死

查看所有普通任务

oozie  jobs

查看定时任务

oozie jobs -jobtype coordinator

杀死某个任务

oozie可以通过jobid来杀死某个定时任务

oozie job -kill [id]
例如我们可以使用命令
oozie job -kill 0000085-180628150519513-oozie-root-C
来杀死我们定时任务

最新文章

  1. 设计模式之创建类模式大PK
  2. COGS14. [网络流24题] 搭配飞行员
  3. Data Big Bang
  4. oracle中的日期:周月季年,首天未天。
  5. 使用NPOI从Excel中提取图片及图片位置信息
  6. 空函数有参函数调用参数的注意事项Swift 1.1语言
  7. xheditor上传图片配置
  8. 【S4】使用empty()而不是判断size()是否为0
  9. 增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)
  10. [swift]可选类型
  11. Java工作队列和线程池
  12. eclipse设置和优化
  13. Chapter 2. Overview gradle概览
  14. Python多线程同步命令行模拟进度显示
  15. SWFUpload的使用及其注意事项
  16. CSS3秘笈:第一章
  17. react-native —— 在Mac上配置React Native Android开发环境排坑总结
  18. Swift4--函数,自学笔记
  19. JAVA面向对象-----final关键字
  20. JavaScript之JS的数据类型

热门文章

  1. sftp和FTP
  2. PHP5接口技术入门
  3. 珠心算测验(0)&lt;P2014_1&gt;
  4. Vue.js项目的开发环境搭建与运行
  5. 穿越雷区--蓝桥杯--DFS/BFS
  6. SpringMvc 视图解析器常见功能、类型转换、格式化
  7. JDK各个版本的新特性jdk1.5-jdk8(转)
  8. CR LF CR/LF
  9. redis集群在线迁移
  10. 「HNOI2010」弹飞绵羊