一、 基础命令

#提交任务。-config是指定oozie任务的job.properties文件位置,submit是提交任务,每次提交任务后会把任务放到服务器并生产一个jobId,但是并不会运行这个任务
oozie job -oozie http://namenode.com:11000/oozie -config /root/test1/job.properties -submit#执行该任务,0000000-180927111227906-oozie-oozi-W这个是jobId,每个任务的id是唯一的,这个是由提交任务之后产生的
oozie job -oozie http://namenode.com:11000/oozie -start 0000002-211008094443862-oozie-oozi-W#运行该任务,运行=提交+执行
oozie job -oozie http://namenode.com:11000/oozie -config /root/test1/job.properties -run# 后边加上 -D 可以代替job.properties中参数
oozie job -oozie http://namenode.com:11000/oozie  -run -D oozie.use.system.libpath=true#查看任务的信息,可以查看到每个执行项状态
oozie job -oozie http://nn.com:11000/oozie -info 0000017-211008094443862-oozie-oozi-W#查看任务的日志,可以查看每个任务的输出内容及日志内容
oozie job -oozie http://namenode.com:11000/oozie -log 0000008-211008094443862-oozie-oozi-W#可以查看任务的指定项的状态,比如查看action的name为process-select的执行状态
oozie job -oozie http://namenode.com:11000/oozie -info 0000023-211008094443862-oozie-oozi-C@1#杀死任务
oozie job -oozie http://namenode.com:11000/oozie -kill 0000008-211008094443862-oozie-oozi-W

二、配置文件

配置文件只是用来讲解方便,不能直接拿来使用,官网上有打包好的任务

1.job.properties
#hsfs端口地址
nameNode=hdfs://hgdp-001:8020     #resourceManager的端口
jobTracker=hgdp-001:8032 #oozie队列
queueName=default            #输入参数
input=2017-05-09             #自定义目录
hdfspath=user/root           #自定义全局目录
examplesRoot=ocn-itv-oozie      #是否启动系统lib库
oozie.use.system.libpath=True    #参数设置
sparkopts=--executor-memory 1G    #coordinator任务开始时间
start=2017-09-04T00:05+0800    #coordinator任务结束时间
end=2017-09-04T00:36+0800     start2=2017-09-01T00:06+0800end2=2017-09-04T00:36+0800#用户自定义lib库(存放jar包)
oozie.libpath=${nameNode}/${hdfspath}/${examplesRoot}/lib/         workflowAppUri=${nameNode}/${hdfspath}/${examplesRoot}/wf/spark/fork/#coordinator定时调度对应的workflow.xml所在目录
workflowAppUri2=${nameNode}/${hdfspath}/${examplesRoot}/wf/spark/single/  appPath=${nameNode}/${hdfspath}/${examplesRoot}/cd/single/#bundle调用对应的coordinator.xml所在目录
appPath2=${nameNode}/${hdfspath}/${examplesRoot}/cd/single1/  #bundle.xml所在目录
oozie.bundle.application.path=${nameNode}/${hdfspath}/${examplesRoot}/bd/bd1/

2.coordinator.xml

<coordinator-app name="spark_hour_coordinator"frequency="05 * * * *" <!-- 定时器,分时月日年-->start="2022-01-07T00:00+0800" end="2022-01-08T00:00+0800" <!-- 起始时间,终止时间-->timezone="GMT+08:00"<!-- 时差-->xmlns="uri:oozie:coordinator:0.2"><controls><timeout>60</timeout><!-- 超时时间--><concurrency>1</concurrency><!-- 并发任务数--></controls><datasets><!-- 主要用来配置HDFS上的数据目录和文件--><dataset name="InputPrefix" frequency="${coord:hours(1)}"initial-instance="${log_start_time}" timezone="GMT+08:00"><uri-template>${input_prefix}/${YEAR}${MONTH}${DAY}</uri-template><!-- 传参形式表示,可以写绝对路径--><done-flag></done-flag></dataset><dataset name="OutputPrefix" frequency="${coord:hours(1)}"initial-instance="${log_start_time}" timezone="GMT+08:00"><uri-template>${output_prefix}</uri-template><done-flag></done-flag></dataset></datasets><input-events><!-- 满足条件才会触发执行,需使用dataset实例--><data-in name="INPUT_PREFIX" dataset="InputPrefix"><instance>${coord:current(-2)}</instance><!-- 定时任务时间-2小时--></data-in></input-events><output-events><!-- 满足条件才会触发执行,需使用dataset实例--><data-out name="OUTPUT_PREFIX" dataset="OutputPrefix"><instance>${coord:current(+5)}</instance><!-- 定时任务时间+5小时--></data-out></output-events><action><workflow><!-- --><app-path>${wf_application_path}</app-path><!-- hdfs上jar路径--><configuration><property><name>WF_INPUT</name><!-- 定义输入路径--><value>${coord:dataIn('INPUT_PREFIX')}/${coord:formatTime(coord:dateOffset(coord:nominalTime(), -2, 'HOUR'), 'HH')}*</value></property><property><name>WF_OUTPUT</name><value>${coord:dataOut('OUTPUT_PREFIX')}/stat-data/hour/${coord:formatTime(coord:dateOffset(coord:nominalTime(), -2, 'HOUR'), 'yyyyMMdd')}/${coord:formatTime(coord:dateOffset(coord:nominalTime(), -2, 'HOUR'), 'HH')}</value><property><name>CURRENT_DATE</name><value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -2, 'HOUR'), 'yyyyMMdd')}</value></property><property><name>CURRENT_HOUR</name><value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -2, 'HOUR'), 'HH')}</value></property></property><name>oozie.use.system.libpath</name><value>true</value></property></configuration></workflow></action>
</coordinator-app>
3.workflow.xml
<workflow-app name="wf_hour_${CURRENT_DATE}${CURRENT_HOUR}" xmlns="uri:oozie:workflow:0.5"><global><!-- 指定yarn队列名,可省略--><configuration><property><name>mapred.job.queue.name</name><value>root</value></property></configuration></global><start to="wf1"/><!-- 从那个action开始--><action name="update_resfile"><!-- ssh action--><ssh xmlns="uri:oozie:ssh-action:0.1"><host>${ssh_user}@${ssh_ip}</host><command>sh ${shell_dir}/upload.sh</command><capture-output/></ssh><ok to="join-wf"/><!--成功了执行哪个action--><error to="join-wf"/><!--失败了执行哪个action--></action><join name="join-wf" to="fork-wf"/><fork name="fork-wf"><!--同步执行action--><path start="wf2" /><path start="decision-wf" /></fork><action name="wf2"><!-- spark action--><spark xmlns="uri:oozie:spark-action:0.1"><!-- --><job-tracker>${job_tracker}</job-tracker><!-- yarn地址--><name-node>${name_node}</name-node><!-- hdfs地址--><prepare><!-- 执行任务前删除原有路径文件--><delete path="${name_node}${OUTPUT}/"/></prepare><master>yarn-cluster</master><!-- spark任务配置--><mode>cluster</mode><name>HttpTraceBase_${CURRENT_DATE}${CURRENT_HOUR}</name><class>Test</class><jar>${jar_path}</jar><spark-opts>--driver-memory 2g  num-executors 100 --executor-memory 2g --executor-cores 2 --conf spark.network.timeout=1000</spark-opts><arg>${WF_INPUT}/*</arg><!-- 作业参数--><arg>${WF_OUTPUT}/</arg></spark><ok to="end"/><error to="kill"/></action><decision name="decision-wf"><switch><case to="wf3">${wf:conf('IF_EXSIT') eq "true"}</case><!-- 当参数为true时执行wf3--><default to="end"/></switch></decision><action name="wf3"><ssh xmlns="uri:oozie:ssh-action:0.1"><host>${ssh_user}@${ssh_ip}</host><command>sh ${shell_dir}/day.sh</command></ssh><ok to="end"/><error to="end"/></action><kill name="kill"><message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message></kill><end name="end"/>
</workflow-app>

参考博客:
oozie详解:里边部分配置讲解更详细

大数据工具——oozie调度相关推荐

  1. 分享Hadoop处理大数据工具及优势

    现如今,随着云计算技术.物联网技术的兴起,企业需要应对的数据规模越来越大.数据格式越来越复杂.数据收集速度越来越快,也使得它和传统意义的业务数据相比,有了明显的特点.比如ApacheHadoop已成为 ...

  2. 面向大数据与云计算调度挑战的阿里经济体核心调度系统

    编者按 伏羲(Fuxi)是十年前最初创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute,分布式调度 Fuxi),当时的设计初衷是为了解决大规模分布式资源的调度问题( ...

  3. 大数据(1)---全球100款大数据工具汇总(前50款)

    全球100款大数据工具汇总(前50款) 大数据 01  Talend Open Studio 是第一家针对的数据集成工具市场的ETL(数据的提取Extract.传输Transform.载入Load)开 ...

  4. 开发人员该选择什么大数据工具提高工作效率?

    开发人员该选择什么大数据工具提高工作效率? 海量数据使得数据分析工作变得繁重困难,开发人员选择合适的大数据工具来开发大数据系统成为新的挑战.因此开发人员要根据不同的数据处理方式对大数据工具进行分类. ...

  5. 大数据工具千千万,到底谁才是最强王者?

    外面有成千上万的大数据工具.它们都承诺可以为你节省时间和资金,并帮助发掘之前从来见过的业务洞察力.虽然确实如此,可是面对那么多的选择,想理清这么多的工具谈何容易. 哪一种工具适合你的技能组合?哪一种工 ...

  6. 全球100款大数据工具汇总,入行必备

    全球100款大数据工具汇总,入行必备 1. Talend Open Studio 是第一家针对的数据集成工具市场的ETL(数据的提取Extract.传输Transform.载入Load)开源软件供应商 ...

  7. Bossie Awards 开源大数据工具最佳列表

    在最佳开源大数据工具奖中,Google的TensorFlow和Beam无可置疑的入选,同时也有Spark,Elasticsearch,Impala,Kylin,Kafka,Zeppelin等市场热点, ...

  8. 大数据工具主要分为哪几类,每类中具体有哪些工具?

    如今,为了满足企业的主要需求,大数据工具正在迅速得到应用.在大数据技术作为概念和业务战略出现的十年中,涌现了执行各种任务和流程的数千种工具.而推出这些工具的提供商都承诺可以为企业节省时间和成本,并发现 ...

  9. TOP 5大数据工具,掌握1个你就是专家

    欲善其事必利其器,想要把大数据工作做好,那就少不了几个得心应手的大数据工具.今天,圣普伦将和大家分享5个高薪专业大数据专家必备的5个大数据工具,只要掌握其中一种,你就成了专家. 1. Apache C ...

最新文章

  1. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
  2. 基本系统部署完成!北斗三号闪耀中国智慧
  3. linux i18n修改,中文版英文版体现
  4. mysql如何实现acid中的a_MySQL如何实现事务的ACID
  5. IOS-RunTime(刨根问底)
  6. 【模板】分散层叠算法(P6466)
  7. leetcode516 最长回文子序列
  8. python xycoords_python可视化节点关系(三):matplotlib(2)鼠标交互
  9. Linux meson + ninja编译安装源码(八)
  10. Android Multimedia框架总结(二十七)MediaCodec回顾
  11. 图解tcpip 第5版 pdf_现代实用气动技术 第2版 pdf下载 0776
  12. 姿态角与方向余弦矩阵 matlab,方向余弦矩阵和姿态角提取算法(矩阵)要点.ppt
  13. Java项目集成海康威视门禁,NVR
  14. 14期 《心有猛虎 细嗅蔷薇》5月刊
  15. 计算机应用oas,办公自动化系统(OAS)
  16. 计算机视觉主要完成哪些任务
  17. 用Eclipse建立从Vuze/Azureus工程并编译运行的方法
  18. python 滤波_[开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve)
  19. python+vue+elementui大学生网络教学平台
  20. 详解 Spring 声明式事务

热门文章

  1. win10开启共享文件夹教程
  2. 中国大学MOOC-人工智能实践:Tensorflow笔记-课程笔记 Chapter6
  3. Ubuntu 18.04 使用 Autokey 给 联想台式电脑 关闭fn
  4. sony电子纸触屏失灵解决办法
  5. [Cocoa]深入浅出Cocoa多线程编程之 block 与 dispatch quene
  6. 01_SHELL编程之变量定义
  7. linux查找某时间段文件夹,shell查找指定时间段内的文件
  8. 如何用html5做小游戏,如何利用H5互动小游戏来做营销?
  9. 《应用物理杂志》发布电磁超材料最新成果
  10. 机器学习之k近邻算法