您的位置:首页 > 运维架构

hadoop上的工作流调度——oozie

2017-05-15 19:43 447 查看
Hadoop上的工作流调度

Oozie是一个管理Apache Hadoop任务的工作流调度系统。

Oozie工作流任务是有向无环图。

Oozie协调任务是由时间(频率)和数据是否可获得来触发的oozie工作流。

Oozie是一个可扩展的、可靠的和可延伸的系统。

oozie主要由以下几部分组成:

coordinator.xml和job.properties和workflow.xml。

coordinator.xml:定时调度频率

<coordinator-app name="job_name"
frequency="${coord:days(1)}" start="${job_start}" end="${job_end}"
timezone="GMT+08:00" xmlns="uri:oozie:coordinator:0.2">
<controls>
<timeout>2</timeout>
<concurrency>1</concurrency>
</controls>

<action>
<workflow>
<app-path>${application_path}</app-path>
<configuration>
<property>
<name>sqoop_import_path</name>
<value>${coord:dataOut('logData')}</value>
</property>
<property>
<name>nominalformateDate</name>
<value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), "yyyyMMdd")}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>

job.properties:起止时间

hdfs_sqoop_tmp=${namenode_address}/
hdfs_address_prefix=/apps

#coordinator config
job_start=2016-07-15T05:00+0800
job_end=2099-12-31T07:00+0800

#shell
dbTest=test.sh

application_path=${hdfs_address_prefix}/

oozie.coord.application.path=${application_path}
workflow.xml:具体调度的action

<workflow-app xmlns="uri:oozie:workflow:0.2" name="job_name">
<start to="clean/>

<action name="clean">
<fs>
<delete path="${sqoop_import_path}"/>
</fs>
<ok to="dbtTest"/>
<error to="fail"/>
</action>

<action name="dbtTest">

</action>

<kill name="fail">
<message></message>
</kill>
<end name="end"/>
</workflow-app>

具体的执行语句:

oozie  -Dheader:j_username=$j_username -Dheader:j_password=$j_password job -Dnamenode_address=$namenode_address -Djobtracker_address=$jobtracker_address -Dmapred_job_queue_name=$mapred_job_queue_name -Dpg_connection=$pg_connection
-Ddbusername=$pg_username -Ddbpassword=$pg_password --oozie $oozie_url -config  /appcom/apps/test.properties -auth xxx -run -doas $doas_user
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apache workflow oozie