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. 【转】python模块分析之typing(三)

    [转]python模块分析之typing(三) 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度 ...

  2. 使用unix的time命令进行简单的计时

    /usr/bin/time -p python3 1.py 需要注意这里使用的是/usr/bin/time 命令而不unix系统自带time. 输出 real 0.04 user 0.03 sys 0 ...

  3. RESTful API 设计指南(转)

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

  4. vue el-tree:默认展开第几级节点

    需求描述: Tree 树形结构,默认展开第二级菜单. 查 element 文档: 解决方法: 设置  :default-expanded-keys 的值为 idArr 数组, <el-tree ...

  5. mysql5.7 pxc

    pxc优点总结:可以达到时时同步,无延迟现象发生完全兼容MySQL对于集群中新节点的加入,维护起来很简单数据的强一致性不足之处总结:只支持Innodb存储引擎存在多节点update更新问题,也就是写放 ...

  6. [JavaScript]iframe的contentWindow

    HTMLIFrameElement.contentWindow返回的是HTMLIFrameElement类型元素的window对象 通过此对象可以修改iframe实体内的window行为 <if ...

  7. js混淆、eval解密

    js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照JavaScript语法进行解析并执行,简单来说就是把原本的js代码变成了eval的参数,变成参数后代码就成了字符串,其中的一些字 ...

  8. 一种基于NTC的控温电路及软件实现

    NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻.应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果. 1 ...

  9. L1和L2正则

    https://blog.csdn.net/jinping_shi/article/details/52433975

  10. Android UiAutomator2.0

    一.环境搭建 JDK(java环境).SDK(adb appt环境),这两个已经不想再叙述了直接看详见--> android studio 安装,下载地址:https://developer.a ...