1、简介
主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。
2、使用
启动和关闭
bin/oozied.sh start
bin/oozied.sh stop
jobtracher(ResourceManager)
执行
bin/oozie job -oozie http://hadoop102:11000/oozie -config oozie-apps/shellapp/job.properties -run
oozie-apps 是oozie根目录下的一个文件夹,shellapp是其中的一个自定义oozie程序
//shellapp里面应该包括
//workflow.xml job.properties
//需要将shellapp这个文件夹上传到hdfs上
3、示例
oozie定时调度任务
job.properties
nameNode=hdfs://hadoop102:8020
jobTracker=hadoop103:8032
queueName=default
examplesRoot=oozie-apps
oozie.coord.application.path=${nameNode}/user/${user.name}/${examplesRoot}/cron
#start:必须设置为未来时间,否则任务失败
start=2020-07-13T17:00+0800
end=2020-07-13T18:00+0800
workflowAppUri=${nameNode}/user/${user.name}/${examplesRoot}/cron
EXEC=p1.sh
coordinator.xml(定时任务需要包括此文件)
<coordinator-app name="cron-coord" frequency="${coord:minutes(5)}" start="${start}" end="${end}" timezone="GMT+0800" xmlns="uri:oozie:coordinator:0.2">
<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
<workflow-app xmlns="uri:oozie:workflow:0.5" name="one-op-wf">
<start to="shell-node"/>
<action name="shell-node">
<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>p1.sh</exec>
<file>/user/afei/oozie-apps/cron/p1.sh</file>
<capture-output/>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
cron中的p1.sh
echo date >> /opt/module/1.log
上传cron文件夹后执行
bin/oozie job -oozie http://hadoop102:11000/oozie -config oozie-apps/cron/job.properties -run
oozie允许的最小执行任务的频率是5分钟