`

oozie 入门

阅读更多

oozie概述:oozie能干什么

oozie格式:怎么用oozie

oozie执行:怎么运行oozie 

 

oozie概述:

oozie是基于hadoop的调度器,以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar等等。

主要的功能有

Workflow: 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)

Coordinator,定时触发workflow

Bundle Job,绑定多个coordinator

 

oozie格式:

写一个oozie,有两个是必要的:job.properties 和 workflow.xml(coordinator.xml,bundle.xml)

一、job.properties里定义环境变量

nameNode hdfs://xxx5:8020 hdfs地址
jobTracker xxx5:8034 jobTracker地址
queueName default oozie队列
examplesRoot examples 全局目录
oozie.usr.system.libpath true 是否加载用户lib库
oozie.libpath share/lib/user 用户lib库
oozie.wf.appication.path ${nameNode}/user/${user.name}/... oozie流程所在hdfs地址

注意:

workflow:oozie.wf.application.path

coordinator:oozie.coord.application.path

bundle:oozie.bundle.application.path

 

二、XML

 1.workflow:

 

<workflow-app xmlns="uri:oozie:workflow:0.2" name="wf-example1">
  <start to="pig-node">
  <action name="pig-node">
      <pig>
           <job-tracker>${jobTracker}</job-tracker>
           <name-node>${nameNode}</name-node>
           <prepare>
              <delete path="hdfs://xxx5/user/hadoop/appresult" />
           </prepare>
           <configuration>
             <property>
                  <name>mapred.job.queue.name</name>
                   <value>default</value>
              <property>
             <property>
                  <name>mapred.compress.map.output</name>
                   <value>true</value>
              <property>
             <property>
                  <name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
                   <value>false</value>
              <property>
           </configuration>
            <script>test.pig</script>
            <param>filepath=${filpath}</param>
      </pig>
       <ok to="end">
        <error to="fail">
  </action>
  <kill name="fail">
       <message>
                   Map/Reduce failed, error               message[${wf:errorMessage(wf:lastErrorNode())}]
         </message>
    </kill>
   <end name="end"/>
</workflow-app>
 

 

2.coordinator

 

<coordinator-app name="cron-coord" frequence="${coord:hours(6)}" start="${start}" end="${end}"
timezoe="UTC" xmlns="uri:oozie:coordinator:0.2">
<action>
<workflow>
   <app-path>${nameNode}/user/{$coord:user()}/${examplesRoot}/wpath</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设置的UTC,比北京时间晚8个小时,所以你要是把期望执行时间减8小时

coordinator里面传值给workflow,example,时间设置为亚洲

<coordinator-app name="gwk-hour-log-coord" frequency="${coord:hours(1)}" start="${hourStart}" end="${hourEnd}" timezone="Asia/Shanghai"
                 xmlns="uri:oozie:coordinator:0.2">
          
	<action>
        <workflow>
            <app-path>${workflowHourLogAppUri}/gwk-workflow.xml</app-path>
            <configuration>
            	<property>
            		<name>yyyymmddhh</name>
            		<value>${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,'HOUR'), 'yyyyMMddHH')}</value>
            	</property>
            </configuration>
        </workflow>
  </action>		
</coordinator-app>

  

 

 

3.bundle

 

<bundle-app name='APPNAME' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='uri:oozie:bundle:0.1'> 
  <controls>
       <kick-off-time>${kickOffTime}</kick-off-time>
  </controls>
   <coordinator name='coordJobFromBundle1' >
       <app-path>${appPath}</app-path>
       <configuration>
         <property>
              <name>startTime1</name>
              <value>${START_TIME}</value>
          </property>
         <property>
              <name>endTime1</name>
              <value>${END_TIME}</value>
          </property>
      </configuration>
   </coordinator>
   <coordinator name='coordJobFromBundle2' >
       <app-path>${appPath2}</app-path>
       <configuration>
         <property>
              <name>startTime2</name>
              <value>${START_TIME2}</value>
          </property>
         <property>
              <name>endTime2</name>
              <value>${END_TIME2}</value>
          </property>
      </configuration>
   </coordinator>
</bundle-app>

 

oozie hive

    <action name="hive-app">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>hive-site.xml</job-xml>
            <script>hivescript.q</script>
	    <param>yyyymmdd=${yyyymmdd}</param>  
	    <param>yesterday=${yesterday}</param>
	    <param>lastmonth=${lastmonth}</param>
        </hive>
        <ok to="result-stat-join"/>
        <error to="fail"/>
    </action>

  

 

 

oozie运行

启动任务:

oozie job -oozie http://xxx5:11000/oozie -config job.properties -run

 

停止任务:

oozie job -oozie http://localhost:8080/oozie -kill 14-20090525161321-oozie-joe

注意:在停止任务的时候,有的时候会出现全线问题,需要修改oozie-site.xml文件

hadoop.proxyuser.oozie.groups *

hadoop.proxyuser.oozie.hosts *

oozie.server.ProxyUserServer.proxyuser.hadoop.hosts *

oozie.server.ProxyUserServer.proxyuser.hadoop.groups *

 

 

以上所有东西虽然已经使用过了,但是内容都是手打的,若有笔误,请见谅

 

 

分享到:
评论
5 楼 shuaiweixiaozi 2016-04-11  
blackproof 写道
whythiszhao 写道
请问一下楼主, oozie hive 这块代码中,
<param>yyyymmdd=${yyyymmdd}</param>   
<param>yesterday=${yesterday}</param> 
<param>lastmonth=${lastmonth}</param>
以上三个参数的值,从哪里传过来的???谢谢~

job.properties里面,或是coordinator里面,都成


楼主您能把与变量yyyymmdd、yesterday、lastmonth相关的job.properties、coordinator配置文件或事例发我看一下吗? 我的qq:969634139.谢谢
4 楼 whythiszhao 2015-07-23  
whythiszhao 写道
请教楼主,如果我想从 coordinator 中传递每次触发时的 当前时间 到 workflow 中,最终在 hive script 中使用,不知道有没有示例?

多谢楼主,已解决。
3 楼 whythiszhao 2015-07-22  
请教楼主,如果我想从 coordinator 中传递每次触发时的 当前时间 到 workflow 中,最终在 hive script 中使用,不知道有没有示例?
2 楼 blackproof 2015-07-21  
whythiszhao 写道
请问一下楼主, oozie hive 这块代码中,
<param>yyyymmdd=${yyyymmdd}</param>   
<param>yesterday=${yesterday}</param> 
<param>lastmonth=${lastmonth}</param>
以上三个参数的值,从哪里传过来的???谢谢~

job.properties里面,或是coordinator里面,都成
1 楼 whythiszhao 2015-07-21  
请问一下楼主, oozie hive 这块代码中,
<param>yyyymmdd=${yyyymmdd}</param>   
<param>yesterday=${yesterday}</param> 
<param>lastmonth=${lastmonth}</param>
以上三个参数的值,从哪里传过来的???谢谢~

相关推荐

    大数据技术之Oozie入门到精通.txt

    ### 大数据技术之Oozie入门到精通 #### 一、Oozie简介与应用场景 **Oozie**是一款开源的工作流调度系统,主要用于在Hadoop生态系统中管理和执行复杂的数据处理任务。它通过定义一系列有依赖关系的操作来实现工作流...

    Oozie大数据调度系统从入门到精通视频教程

    从零开始讲解大数据调度系统构成,集成大数据计算任务构建大数据工作流,基于Oozie构建实现企业级自动化任务开发 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,讲解...

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    在大数据处理领域,Hive和Oozie是两个至关重要的工具。Hive是基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL)查询和管理大规模数据集。而Oozie是Hadoop生态系统中的工作流调度系统,用于管理Hadoop作业的生命...

    Hue-oozie运行spark

    总而言之,通过Hue编辑workflows来提交Spark程序,不仅提高了开发效率,还降低了入门门槛。但使用时需要注意一些常见的配置和错误问题,以及对Hadoop生态系统的基本了解,这样才能确保Spark作业能够顺利运行,并在...

    大数据入门ppt

    关于大数据,大数据,Hadoop,Zookeeper,HBase,Hive,Impala,Kafka,Storm,Spark,Hue,Fiume NG,OoZie,Sqoop,Pig,Cloudera,Hortonworks,MapR,Google入门的ppt

    Hadoop安装学习-入门教程

    Hadoop 安装 学习 入门教程 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, ...

    2018尚硅谷新版大数据零基础入门到精通全套视频教程

    尚硅谷新版大数据零基础入门到精通全套视频教程作为大数据倡导者,大数据是目前比较火热的技术话题,hadoop、spark等技术都是当今前沿技术,谁掌握了前沿技术,就等于掌握了明天。 Java视频教程目录: 01_尚硅谷...

    hadoop入门资料集锦

    Hadoop生态系统包括众多相关项目,如Hive(数据仓库工具,用于SQL查询)、Pig(数据分析工具)、HBase(分布式数据库)、Oozie(工作流调度器)、Zookeeper(分布式协调服务)等。这些工具协同工作,为大数据处理...

    Hadoop 傻瓜入门

    书中不仅包含了对Hadoop分布式框架内部工作原理的深入探讨,还介绍了使用Oozie进行工作流调度,以及如何通过Hive和HBase为Hadoop增添结构化数据处理能力。 此外,读者还将了解到如何在Hadoop上运行原生SQL查询,...

    Hadoop快速入门

    7. Hadoop生态系统:了解Hadoop生态中的其他工具,如Hive(数据仓库工具)、Pig(高级数据流语言)、HBase(非关系型数据库)、Zookeeper(协调服务)、Sqoop(数据导入工具)和Oozie(工作流调度系统)等。...

    大数据技术之Hadoop(入门).docx

    - **Oozie**:用于管理工作流和协调Hadoop作业。 - **HBase**:分布式列存储数据库,支持随机访问。 - **Hive**:数据仓库工具,提供SQL接口,方便进行数据查询和分析。 以上内容涵盖了Hadoop入门所需的基础知识和...

    Hadoop开发者入门专刊.zip

    同时,了解Hadoop的版本更新及其与大数据生态系统的其他组件(如Hue、Oozie、Zookeeper等)的集成也非常重要。 最后,实践是检验理论的最好方式。通过参与实际的项目,比如构建一个日志分析系统或实现一个数据清洗...

    1.Hadoop入门进阶课程

    - **Oozie**:工作流调度系统,用于管理Hadoop作业的生命周期。 - **Zookeeper**:分布式协调服务,确保集群中的节点间有一致的状态。 **4. 学习路线与实践** 学习Hadoop入门进阶课程,通常会涵盖以下几个方面: ...

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 32.Spark入门之Scala(共173页).pptx

    - **Oozie**:Oozie是Hadoop的工作流调度系统,管理Hadoop作业的生命周期。 - **Impala**:Impala是针对Hadoop的数据仓库查询系统,提供快速、交互式SQL查询。 - **Solr**:Solr是Apache的搜索服务器,支持全文...

    阿里云E-MapReduce-快速入门.pdf

    阿里云E-MapReduce快速入门 阿里云E-MapReduce是阿里云提供的一种大数据处理服务,基于Hadoop和Spark的分布式计算引擎,可以对大规模数据进行快速处理和分析。本资源摘要信息将指导您快速开始使用阿里云E-...

    Hadoop开发者入门专刊

    【Hadoop开发者入门专刊】是一本专门为初学者设计的Hadoop技术指南,它整合了互联网上的精华内容,旨在帮助读者快速掌握Hadoop生态系统的基本概念和应用。这本专刊涵盖了Hadoop、HBase、Hive和HDFS等多个关键组件,...

    hadoop新手入门资料

    大数据视频学习资料-【课程内容】 01_Linux基础 02_Hadoop 03_Zookeeper 04_Hadoop-HA 05_Hive框架基础 06_Flume 07_Oozie 08_HBase 09_Kafka 09_杂项 10_Storm 11_1离线平台项目测试 11_项目:大数据离线平台 12_...

Global site tag (gtag.js) - Google Analytics