1、Oozie的简单介绍:

、Oozie是一个工作流引擎服务器,用于运行hadoop map/reduce和hive等任务工作流,同时Oozie还是一个Java web程序,运行在Java Servlet容器中,如Tomcat中。Oozie以action为基本任务单元,可以将多个action构成一个DAG图,(有向五环图Direct Acyclic Graph)的模式进行运行。Oozie工作流通过HPDL(一种通过XML自定义处理的语言)来构造Oozie的工作流。一个Oozie服务器主要包括四个服务:Oozie Workflow,Oozie Coordinator,Oozie Bundle和Oozie SLA(Oozie服务器等级协定)。
  a、Oozie Workflow:该组件用于定义和执行一个特定顺序的mapreduce,hive和pig作业。
  b、Oozie Coordinator:该组件用户支持基于事件,系统资源存在性等条件的workflow的自动化执行。
  c、Oozie Bundle:该引擎可以定义和执行“一束”应用,从而提供一个批量化的方法,将一组Coordinator应用程序一起进行管理。
  d、Oozie服务器等级协定(Service Level Agreement,SLA):该组件支持workflow应用程序执行过程的记录跟踪。

2、Oozie的安装操作:

1、Oozie使用tomcat等服务器作为web页面展示容器,使用关系型数据库存储Oozie的工作流元数据,默认使用derby,由于derby的缺点,一般情况使用mysql作为Oozie的元数据库,使用extjs来作为报表展示js框架。
  a、安装步骤:
    1)、安装mysql。之前安装过,省略。
    2)、安装tomcat。
      a、下载tomcat压缩包:wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz
        [hadoop@slaver1 package]$ wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz
      b、解压缩操作。
       [hadoop@slaver1 package]$ tar -zxvf apache-tomcat-7.0.8.tar.gz -C /home/hadoop/soft/
      c、设置环境变量。
        [hadoop@slaver1 soft]$ sudo vim /etc/profile
        export CATALINA_HOME=/home/hadoop/soft/apache-tomcat-7.0.8
        export PATH=$PATH:$CATALINA_HOME/bin
      d、启动tomcat测试是否安装成功。
        [hadoop@slaver1 bin]$ startup.sh
        [hadoop@slaver1 apache-tomcat-7.0.8]$ jps
        4547 Bootstrap
    3)、安装Oozie。下载地址:archive.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.3.6.tar.gz
      a、下载Oozie安装包解压缩操作和ext-2.2.zip。
        [hadoop@slaver1 package]$ tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C /home/hadoop/soft/
      b、设置用户环境变量。
        [hadoop@slaver1 soft]$ sudo vim /etc/profile
        export OOIZE_HOME=/home/hadoop/soft/oozie-4.0.0-cdh5.3.6
        export PATH=$PATH:$OOIZE_HOME/bin
      c、修改cong/Oozie-site.xml文件进行配置信息修改。(这个文件的内容可以去Oozie-default.xml文件找)
        主要就是进行元数据指定和service的指定:
        配置信息见下面所示:
      如果修改端口号,可以在conf/oozie-enc.sh文件中进行参数修改,比如修改端口号,默认端口号为11000。
      d、在Oozie根目录下创建libext文件夹,并将Oozie依赖的其他第三方jar移动到该目录下面。
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ mkdir libext
        然后将mysql的driver压缩包到libext文件夹中:
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ cp /home/hadoop/package/mysql-connector-java-5.1.31.jar ./libext/
      e、创建Oozie元数据库。执行sql创建,执行完成后,mysql中出现数据库和数据表:
        [hadoop@slaver1 ~]$ ooziedb.sh create -sqlfile oozie.sql -run
      f、设置hadoop代理用户。必须设置 哦。
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ vim /home/hadoop/soft/hadoop-2.5.0-cdh5.3.6/etc/hadoop/core-site.xml
         <property>
                <name>hadoop.proxyuser.hadoop.hosts</name>
                <value>*</value>
            </property>
            <property>
                <name>hadoop.proxyuser.hadoop.groups</name>
                <value>*</value>
            </property>
      g、在hdfs上设置Oozie的公用jar文件夹。
        hadoop的默认端口号是8020,我改成了9000,所以这里注意一下:
        [hadoop@slaver1 ~]$ oozie-setup.sh sharelib create -fs hdfs://slaver1:8020 -locallib $OOIZE_HOME/oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ oozie-setup.sh sharelib create -fs hdfs://slaver1:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
      h、创建Oozie的war文件。
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ addtowar.sh -inputwar ./oozie.war -outputwar ./oozie-server/webapps/oozie.war -hadoop 2.5.0 $HADOOP_HOME -jars ./libext/mysql-connector-java-5.1.31.jar -extjs ../../../hadoop/package/ext-2.2.zip
        或者将hadoop相关包,mysql相关包,ext相关压缩包放到libext文件夹中,运行oozie-setup.sh prepare-war也可以创建war文件。
      i、运行Oozie并检查是否安装完成。
        oozied.sh run 或者oozied.sh start(前端在前端运行,后者在后台运行)
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ oozied.sh start
      j、查询web界面&查看状态:oozie admin -oozie http://slaver1:11000/oozie -status。
        [hadoop@slaver1 oozie-4.0.0-cdh5.3.6]$ oozie admin -oozie http://slaver1:11000/oozie -status

3:Oozie的conf文件修改oozie.site.xml:

<?xml version="1.0"?>
<configuration>
<property>
<name>oozie.services</name>
<value>
org.apache.oozie.service.JobsConcurrencyService,
org.apache.oozie.service.SchedulerService,
org.apache.oozie.service.InstrumentationService,
org.apache.oozie.service.MemoryLocksService,
org.apache.oozie.service.CallableQueueService,
org.apache.oozie.service.UUIDService,
org.apache.oozie.service.ELService,
org.apache.oozie.service.AuthorizationService,
org.apache.oozie.service.UserGroupInformationService,
org.apache.oozie.service.HadoopAccessorService,
org.apache.oozie.service.URIHandlerService,
org.apache.oozie.service.DagXLogInfoService,
org.apache.oozie.service.SchemaService,
org.apache.oozie.service.LiteWorkflowAppService,
org.apache.oozie.service.JPAService,
org.apache.oozie.service.StoreService,
org.apache.oozie.service.CoordinatorStoreService,
org.apache.oozie.service.SLAStoreService,
org.apache.oozie.service.DBLiteWorkflowStoreService,
org.apache.oozie.service.CallbackService,
org.apache.oozie.service.ActionService,
org.apache.oozie.service.ShareLibService,
org.apache.oozie.service.ActionCheckerService,
org.apache.oozie.service.RecoveryService,
org.apache.oozie.service.PurgeService,
org.apache.oozie.service.CoordinatorEngineService,
org.apache.oozie.service.BundleEngineService,
org.apache.oozie.service.DagEngineService,
org.apache.oozie.service.CoordMaterializeTriggerService,
org.apache.oozie.service.StatusTransitService,
org.apache.oozie.service.PauseTransitService,
org.apache.oozie.service.GroupsService,
org.apache.oozie.service.ProxyUserService,
org.apache.oozie.service.XLogStreamingService,
org.apache.oozie.service.JvmPauseMonitorService
</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/home/hadoop/soft/hadoop-2.5.-cdh5.3.6/etc/hadoop</value>
</property>
<property>
<name>oozie.service.JPAService.create.db.schema</name>
<value>true</value>
</property> <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://slaver1:3306/ooize?createDatabaseIfNotExist=true</value>
</property> <property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>hive</value>
</property> <property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>hive</value>
</property> <property>
<name>oozie.processing.timezone</name>
<value>GMT+</value>
</property>
</configuration>

4、web界面如下所示:

5、Oozie的工作流介绍:

1、Oozie的四大组件服务分别是:workflow,coordinator,boundle和sla。启动sla是作为监控服务协议的一个组件,workflow定义Ooize的基本工作流,coordinator定义定时(或者是根据其他资源指标)运行的workflow任务。bundle是将多个coordinator作为一个组件一起管理。也就是说workflow是oozie中最基本的一个服务组件。三大服务的关系是:bundle包含多个coordinator,coordinator包含一个workflow,workflow定义具体的action动作。
2、workflow使用hadoop流程定义语言(hadoop process defination language,hPDL)来描述工作流,hPDL是类似xml语言的一种相当简介的定义类语言,使用有限数目的流控制节点和动作节点来描述workflow,也就是说workflow有两大类节点构成:工作流控制节点和动作节点。其中工作流控制节点是workflow本身提供的一种控制workflow工作流执行路径的方法,不可以自定义,动作节点是具体的操作方法,用户可以自定义。
  workflow工作流的声明周期:
  a、PREP,一个工作流第一次创建就处于PREP状态,表示工作流已经创建,但是还没有运行。
  b、RUNNIG,当一个已经被创建的工作流job开始执行的时候,就处于RUNNING状态。它不会达到结束状态,只能因为出错而结束或者被挂起。
  c、SUSPENDED,一个RUNNING状态的工作流Job会变成SUSPENDED状态,而且它会一直处于该状态,除非这个工作流Job被重启开始执行或者被杀死。
  d、SUCCESSEDED,当一个RUNNING状态的工作流Job达到了end节点,他就变成了SUCCESSEDED最终完成状态。
  e、KILLED,当一个工作流Job处于被创建后的状态。或者处于RUNNING,SUSPENDED状态时,被杀死,则工作流Job的状态变为了KILLED状态。
  f、FAILED,当一个工作流Job不可预期的错误失败而终止,就会变成FAILED状态。
3、
4、

组件之间的关系如下所示:

6、

待续......

Oozie如何和安装部署的更多相关文章

  1. 【Hadoop离线基础总结】oozie的安装部署与使用

    目录 简单介绍 概述 架构 安装部署 1.修改core-site.xml 2.上传oozie的安装包并解压 3.解压hadooplibs到与oozie平行的目录 4.创建libext目录,并拷贝依赖包 ...

  2. Oozie安装部署

    不多说,直接上干货! 首先,大家先去看我这篇博客.对于Oozie的安装有一个全新的认识. Oozie安装的说明 我这里呢,本篇博文定位于手动来安装Oozie,同时避免Apache版本的繁琐编译安装,直 ...

  3. 大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战

    一 概述1.1 为什么需要工作流调度系统1.2 常见工作流调度系统1.3 各种调度工具特性对比1.4 Azkaban 与 Oozie 对比二 Azkaban(阿兹卡班) 介绍三 Azkaban 安装部 ...

  4. Azkaban2.5安装部署(系统时区设置 + 安装和配置mysql + Azkaban Web Server 安装 + Azkaban Executor Server安装 + Azkaban web server插件安装 + Azkaban Executor Server 插件安装)(博主推荐)(五)

    Azkaban是什么?(一) Azkaban的功能特点(二) Azkaban的架构(三) Hadoop工作流引擎之Azkaban与Oozie对比(四) 不多说,直接上干货! http://www.cn ...

  5. hue框架介绍和安装部署

    大家好,我是来自内蒙古的小哥,我现在在北京学习大数据,我想把学到的东西分享给大家,想和大家一起学习 hue框架介绍和安装部署 hue全称:HUE=Hadoop User Experience 他是cl ...

  6. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  7. 最新版大数据平台安装部署指南,HDP-2.6.5.0,ambari-2.6.2.0

    一.服务器环境配置 1 系统要求 名称 地址 操作系统 root密码 Master1 10.1.0.30 Centos 7.7 Root@bidsum1 Master2 10.1.0.105 Cent ...

  8. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  9. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

随机推荐

  1. Nand flash 三种类型SLC,MLC,TLC【转】

    转自:https://blog.csdn.net/fc34235/article/details/79584758 转载自:http://diy.pconline.com.cn/750/7501340 ...

  2. 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)

      17.1.解释 概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. main(),客户 IWom ...

  3. 设计模式C++学习笔记之十二(Command命令模式)

      命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤消的操作.应该是一个比较简单的模式了. 12.1.解释 main(),客户 CIn ...

  4. const成员函数和mutable关键字

    一.const成员函数 class MyClass { public: void fun() const { } private: int m_nValue; } const成员函数内不能修改成员变量 ...

  5. 6-CSS

    HTML Style Tags CSS stands for Cascading Style Sheets. CSS describes how HTML elements are to be dis ...

  6. JMeter实现唯一参数生成不重复时间戳

    现象: 使用jmeter做接口压测时,总会遇到压测时,提示不允许重复id或提示订单不允许重复现象,那么如何解决呢? 原料工具 jmeter4.0 本地准备好接口服务 思路: 单个接口,小批量接口,一般 ...

  7. ios中input获取焦点时的问题

    1.获取焦点时,input会变大 解决办法是:font-size设置为32px以上 还有就是要在header里面加这一行代码:<meta name="viewport" co ...

  8. liunx 安装 mysql 5.6

    第一步  解压文件 目录切换到/usr/local/ cd /usr/local/ 解压 tar zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz 重命名为 ...

  9. 分享几个Android很强势的的开源框架

    前言 今天介绍一下android开发者中比较热门的开源代码,这些代码绝大多数可以直接应用到项目中.更多可参考很值得收藏的安卓开源控件库 一个强大的图片选择器,支持多选,和选聘选择 项目地址: http ...

  10. jquery easyui datagrid 加每页合计和总合计

    jquery easyui datagrid 加每页合计和总合计 一:效果图 二:代码实现 这个只有从后台来处理 后台根据rows 和page两个参数返回的datatable 命名为dt 然后根据dt ...