oozie初学习

oozie:工作流调度工具

Oozie是一个基于工作流引擎的服务器,可以在上面运行Hadoop的Map Reduce和Pig任务。它其实就是一个运行在Java Servlet容器(比如Tomcat)中的Javas Web应用。

对于Oozie来说,工作流就是一系列的操作(比如Hadoop的MR,以及Pig的任务),这些操作通过有向无环图的机制控制。这种控制依赖是说,一个操作的输入依赖于前一个任务的输出,只有前一个操作完全完成后,才能开始第二个。

Oozie工作流通过hPDL定义(hPDL是一种XML的流程定义语言)。工作流操作通过远程系统启动任务。当任务完成后,远程系统会进行回调来通知任务已经结束,然后再开始下一个操作。

简单来说,oozie的功能就是按照某一顺序执行一些列操作

如:先执行hive进行数据分析,然后将结果通过sqoop传到mysql。这两部可以通过一个workflow实现,即工作流。

oozie的功能

  • Workflow:顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)
  • Coordinator:定时触发workflow;
  • Bundle Job:绑定多个Coordinator。


                Workflow示例图:


   Coordinator示例图:

   Bundle示例图:



oozie的配置(这里我使用的是oozie-4.1.0-cdh5.5.0版本)

需要准备的环境:
linux
java1.6+
hadoop2
extjs2.2(这个是oozie在浏览器显示所需要的)

1、修改hadoop配置文件中的core-site.xml(修改后hadoop需要重启)
  <!-- OOZIE -->
  <property>
    <name>hadoop.proxyuser.用户名.hosts</name>
    <value>主机名</value>
  </property>
  <property>
    <name>hadoop.proxyuser.用户名.groups</name>
    <value>*</value>
  </property>
2、在oozie的配置文件oozie-site.xml中配置hadoop的配置文件路径
<property>  
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>  
    <value>*=$HADOOP_HOME/etc/hadoop</value>  
</property>
3、在oozie目录下解压一个hadooplib的tar包,生成了oozie-4.1.0-cdh5.5.0/hadooplibs文件夹,其中有两个文件夹,一个是第一代的mapreduce,另一个是yarn的,这里我们只使用yarn的。
4、创建一个 libext目录,将上一步yarn的包下的所有jar包复制到该目录下,extjs2.2的zip压缩包也放到该目录下
5、打包(在oozie-server/webapps下生成一个oozie.war包)
bin/oozie-setup.sh prepare-war
6、上传一个共享的包到HDFS中(会在hdfs的对应用户目录下生成一个share文件夹,里面存放很多jar包,供后续一些程序使用)
bin/oozie-setup.sh sharelib create -fs hdfs://你的主机名(IP):端口号 -locallib sharelib的yarn的tar包
7、创建数据库
bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
8、现在就可以启动了
bin/oozie-start.sh
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值