[关闭]
@hadoopMan 2018-01-02T08:36:16.000000Z 字数 3418 阅读 1471

oozie安装部署

oozie
本节主要内容:
以下几点要着重注意:
1) Hadoop2.x生态系统中常见几种开源的调度框架,各自优势
2) Oozie 工作流调度框架的三大功能及架构
3) 完成Oozie安装部署测试
4) 认真阅读Oozie官方文档,提升英文阅读能力,细节决定成败

1,几种开源调度框架介绍

Linux调度策略
1,crontab
2,Azkaban
3,oozie
4,Zeus

1,oozie介绍

oozie是一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对hadoop mapreduce和pig Jobs的任务调度与协调。oozie需要部署到java servlet容器中运行。

2,oozie工作流定义,

同JBoss jBPM提供的jPDL一样,oozie也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发。汇合等等。

3,ooize的节点

oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括 Hadoop mapreduce、hadoop文件系统、pig、SSH、HTTP、eMail和oozie子流程。
下图给出了,wordcount Workflow Example:
oozie.png-27kB

4,Oozie任务分为三种模式:

workflow – 这种方式最简单,就是定义DAG来执行。
coordinator – 它构建在workflow工作方式之上,提供定时运行和触发运行任务的功能。
bundle – bundle的作用就是将多个coordinator管理起来。这样我们只需要提供一个bundle提交即可。然后可以start/stop/suspend/resume任何coordinator。
11000-oozie.png-30.8kB

5,oozie对系统的要求:

Unix (tested in Linux and Mac OS X)
Java 1.6+
Hadoop
Apache Hadoop (tested with 1.0.0 & 0.23.1)
ExtJS library (optional, to enable Oozie webconsole)
ExtJS 2.2

注意: oozie会忽略任何关于 OOZIE_HOME的设置,他自己会计算自己的主目录。

2,ooize的配置

1,hadoop端的配置

在core-site.xml中添加如下两个配置:

  1. <!-- OOZIE -->
  2. <property>
  3. <name>hadoop.proxyuser.hadoop.hosts</name>
  4. <value>miaodonghua1.host</value>
  5. </property>
  6. <property>
  7. <name>hadoop.proxyuser.hadoop.groups</name>
  8. <value>*</value>
  9. </property>

2,安装oozie

解压oozie-4.0.0-cdh5.3.6.tar.gz

  1. tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C /opt/cdh2.3.6/

解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz与oozie级目录

  1. cd /opt/cdh2.3.6/oozie-4.0.0-cdh5.3.6
  2. tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../

在oozie的主目录下创建一个libext目录:

  1. mkdir libext/

拷贝hadooplibs中的对应版本的jars到libext目录下

  1. cp hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/

拷贝ExtJS library到libext

  1. cp /opt/softwares/ext-2.2.zip libext/

3,配置hadoop配置文件目录

在oozie-site.xml中修改如下内容

  1. <property>
  2. <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
  3. <value>*=/opt/cdh2.3.6/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
  4. <description>
  5. Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
  6. the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
  7. used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
  8. the relevant Hadoop *-site.xml files. If the path is relative is looked within
  9. the Oozie configuration directory; though the path can be absolute (i.e. to point
  10. to Hadoop client conf/ directories in the local filesystem.
  11. </description>
  12. </property>

不配置的话会报如下错误

  1. org.apache.oozie.action.ActionExecutorException: File /user/beifeng/share/lib does
  2. not exist
  3. at org.apache.oozie.action.hadoop.JavaActionExecutor.addSystemShareLibForAc
  4. tion(JavaActionExecutor.java:631)
  5. at org.apache.oozie.action.hadoop.JavaActionExecutor.addAllShareLibs(JavaAc
  6. tionExecutor.java:709)

报错原因:

  1. 原因:
  2. 没有读取HDFS上的文件,读取的是本地文件系统上的
  3. 解决;
  4. 配置HDFS文件

4,启动oozie需要的三个准备:

第一步:

  1. bin/oozie-setup.sh prepare-war

第二步:

  1. bin/oozie-setup.sh sharelib create \
  2. -fs hdfs://miaodonghua1.host:8020 \
  3. -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

第三步:

  1. bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection

5,启动oozie

start 端口号11000
将oozie启动成守护进程

  1. $ bin/oozied.sh start

oozie运行成功之后.png-9.3kB
将oozie启动为前段进程

  1. $ bin/oozied.sh run

可以使用如下命令来检测oozie的状态:

  1. $ bin/oozie admin -oozie http://localhost:11000/oozie -status

6,在浏览器上登录oozie

web登陆界面.png-48.5kB
Oozie WorkFlow结构特点

workflow.xml --> 必须要在HDFS上
start
actions
kill
end
job.propertie --> 必须要在本地
属性信息
lib --> 必须要在HDFS上
依赖jar包

7,运行wordcount例子

首先解压
修改如下内容在mapreduce的job.properties中修改

  1. nameNode=hdfs://miaodonghua1.host:8020
  2. jobTracker=miaodonghua1.host:8021

上传

  1. /opt/cdh2.3.6/hadoop-2.5.0-cdh5.3.6/bin/hdfs dfs -put examples examples
  1. bin/oozie job -oozie http://miaodonghua1.host:11000/oozie -config examples/apps/map-reduce/job.properties -run

8088-oozie.png-69.2kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注