oozie框架简介和搭建流程

来源:互联网 发布:python 聚类算法 编辑:程序博客网 时间:2024/06/14 16:48
Oozie基础介绍:     
      一个基于工作流引擎的开源框架,是由
Cloudera公司贡献给Apache的,它能够提供对HadoopMapReducePig Jobs任务调度与协调Oozie需要部署到Java Servlet容器中运行。
      Oozie定义了控制流节点(ControlFlow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decisionforkjoin等;而动作节点包括Hadoopmap-reduceHadoop文件系统、PigSSHHTTPeMailOozie子流程。


Oozie三大实现功能:
Workflow:顺序执行流程节点

Coordinator:定时触发workflow

Bundle Job:绑定多个coordinator


oozie特点:
通过xml文件控制job(作业)
控制流节点(Control Flow Nodes)
用来定义流程,如:start\ok\error\end
 动作节点(Action Nodes)
配置需要执行的job任务,如:MapReduce、shell

==========================oozie安装部署==============================

系统环境要求System Requirements

  • 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

Server Installation

IMPORTANT: Oozie ignores any set value for OOZIE_HOME , Oozie computes its home automatically.

  • Build an Oozie binary distribution
  • Download a Hadoop binary distribution
  • Download ExtJS library (it must be version 2.2)//版本要求2.2

1.解压oozie软件包:
$ tar zxvf /opt/softwares/oozie-4.0.0-cdh5.3.6.tar.gz




2.配置proxyuser:
===================CDH Hadoop的core-site.xml文件================

NOTE: Configure the Hadoop cluster with proxyuser for the Oozie process.

The following two properties are required in Hadoop core-site.xml:

  <!-- OOZIE -->  <property>    <name>hadoop.proxyuser.[OOZIE_SERVER_USER].hosts</name>    <value>[OOZIE_SERVER_HOSTNAME]</value>  </property>  <property>    <name>hadoop.proxyuser.[OOZIE_SERVER_USER].groups</name>    <value>[USER_GROUPS_THAT_ALLOW_IMPERSONATION]</value>  </property>
<!-- oozie服务器主机地址(oozie用户名需填当前用户) -->
<property>
<name>hadoop.proxyuser.vampire.hosts</name>
<value>vampire04</value>
</property>
<!--允许哪些用户组来访问,'*'表示所有-->
<property>
<name>hadoop.proxyuser.tom.groups</name>
<value>*</value>
</property>


3、启动CDH Hadoop
** 注意:historyserver一定要启动
$ sbin/start-dfs.sh ;sbin/start-yarn.sh ;sbin/mr-jobhistory-daemon.sh start historyserver


4、需要在oozie目录下,解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz,生成hadooplibs/。(由于该文件结构特殊,注意执行命令的位置)
[tom@blue01 oozie-4.0.0-cdh5.3.6]$ tar zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz  -C /opt/modules/cdh/
# 在oozie目录下,创建libext/
$ mkdir libext/
# '-r'递归,用来复制目录
$ cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/
# 拷贝Extjs包
$ cp /opt/softwares/ext-2.2.zip  libext/


5、安装Mysql
$ mysql -uroot -proot
mysql> create database oozie;


** 拷贝mysql驱动jar包到libext!!!
$ cp mysql-connector-java-5.1.27-bin.jar /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/libext/



6、修改配置文件
===========oozie-site.xml(conf/)=================

    <property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://[hostname]:3306/oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>root</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>123456</value>
    </property>
<!--232-->
** 关联HDFS
<property>
        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
        <value>*=/opt/modules/cdh5.3.6/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
    </property>




7、依次执行以下命令
a. 在{OOZIE_HOME},生产web工程(war)
$ bin/oozie-setup.sh prepare-war


b.上传包到HDFS
$ jps
4489 DataNode
4389 NameNode
5000 NodeManager
4881 ResourceManager
4670 SecondaryNameNode

$ bin/oozie-setup.sh sharelib create \
-fs hdfs://[hostname]:8020 \
-locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

c. 生成数据库
$ bin/oozie-setup.sh db create -run -sqlfile oozie.sql

8、启动服务:


$ bin/oozied.sh start


9、浏览器浏览oozie界面
访问地址: http://[hostname]:11000/oozie/


原创粉丝点击