简单介绍

  • 概述

    oozie CDH版本 官方帮助文档:http://archive.cloudera.com/cdh5/cdh/5/oozie-4.1.0-cdh5.14.0/



    Oozie是一个基于服务器的工作流引擎,专门运行带有运行Hadoop Map/Reduce和Pig作业的操作的工作流作业。

    Oozie是一个运行在Java servlet容器中的Java web应用程序。

    对于Oozie来说,工作流是一组操作(例如Hadoop Map/Reduce作业、Pig作业),它们被安排在一个控制依赖关系DAG(直接无环图)中。从一个操作到另一个操作的“控制依赖”意味着第二个操作在第一个操作完成之前不能运行。

    Oozie工作流定义是用hPDL(一种类似于JBOSS JBPM jPDL的XML流程定义语言)编写的。

    Oozie工作流动作在远程系统(如Hadoop、Pig)中启动作业。操作完成后,远程系统回调Oozie来通知操作完成,此时Oozie将继续执行工作流中的下一个操作。

    Oozie工作流包含控制流节点和操作节点。

    控制流节点定义工作流的开始和结束(开始、结束和失败节点),并提供一种机制来控制工作流执行路径(decision、fork和join节点)。

    动作节点是工作流触发计算/处理任务执行的机制。Oozie支持不同类型的操作:Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、电子邮件和Oozie子工作流。可以扩展Oozie以支持其他类型的操作。

    Oozie工作流可以参数化(在工作流定义中使用${inputDir}之类的变量)。在提交工作流时,必须提供参数的作业值。如果正确地参数化(即使用不同的输出目录),几个相同的工作流作业可以并发进行。

  • 架构

    WorkFlow: 工作流,定义我们的工作流的任务的执行,主要由一个个的action,在xml中进行配置即可

    Coordinator : 协作器,说白了就是oozie当中的定时任务调度的模块

    Bundle : 多个Coordinator 的抽象,可以通过bundle将多个Coordinator 进行组装集合起来,形成一个bundle


安装部署

  • 1.修改core-site.xml

    修改core-site.xml添加hadoop集群的代理用户

    cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop

    vim core-site.xml

    添加一下配置(三台机器都要修改)

    <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
    </property>

    注意:hadoop的历史任务的服务必须启动,即19888端口可以查看,具体如何配置19888请查看hadoop课程的环境搭建

    重启hdfs与yarn集群

    cd /export/servers/hadoop-2.6.0-cdh5.14.0
    sbin/stop-dfs.sh
    sbin/start-dfs.sh
    sbin/stop-yarn.sh
    sbin/start-yarn.sh
  • 2.上传oozie的安装包并解压

    oozie安装包下载地址(要根据自己的CDH版本下载):http://archive.cloudera.com/cdh5/cdh/5/

    下载完成后上传到/export/softwares 进行解压

    tar -zxvf oozie-4.1.0-cdh5.14.0.tar.gz -C ../servers/

  • 3.解压hadooplibs到与oozie平行的目录
    cd /export/servers/oozie-4.1.0-cdh5.14.0
    tar -zxvf oozie-hadooplibs-4.1.0-cdh5.14.0.tar.gz -C ../

  • 4.创建libext目录,并拷贝依赖包到libext目录
    cd /export/servers/oozie-4.1.0-cdh5.14.0
    mkdir -p libext
    cp -ra hadooplibs/hadooplib-2.6.0-cdh5.14.0.oozie-4.1.0-cdh5.14.0/* libext/
  • 5.拷贝mysql的驱动包到libext目录下
    cp /export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar /export/servers/oozie-4.1.0-cdh5.14.0/libext/
  • 6.上传ext-2.2.zip压缩包到libext目录下

  • 7.修改oozie-site.xml
    cd /export/servers/oozie-4.1.0-cdh5.14.0/conf
    vim oozie-site.xml

    以下配置有则修改,无则添加

    <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://node03.hadoop.com: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> <property>
    <name>oozie.processing.timezone</name>
    <value>GMT+0800</value>
    </property> <property>
    <name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name>
    <value>*</value>
    </property> <property>
    <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name>
    <value>*</value>
    </property> <property>
    <name>oozie.service.coord.check.maximum.frequency</name>
    <value>false</value>
    </property> <property>
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
    <value>*=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop</value>
    </property>
  • 8.创建mysql数据库
    mysql -uroot -p
    create database oozie;
  • 9.上传oozie依赖的jar包到hdfs上面去

    bin/oozie-setup.sh sharelib create -fs hdfs://node01:8020 -locallib oozie-sharelib-4.1.0-cdh5.14.0-yarn.tar.gz

  • 10.创建oozie的数据库表
    cd /export/servers/oozie-4.1.0-cdh5.14.0
    bin/oozie-setup.sh db create -run -sqlfile oozie.sql
  • 11.打包项目,生成war包

    在这之前先确保自己的linux安装了zip和unzip,没有的话在线安装一下

    yum -y install unzip

    yum -y install zip

    bin/oozie-setup.sh prepare-war

  • 12.配置oozie的环境变量

    vim /etc/profile

    export OOZIE_HOME=/export/servers/oozie-4.1.0-cdh5.14.0
    export OOZIE_URL=http://node03.hadoop.com:11000/oozie
    export PATH=:$OOZIE_HOME/bin:$PATH

    source /etc/profile

  • 13.oozie的启动和关闭命令

    bin/oozied.sh start

    bin/oozied.sh stop



    有时如果是在进程直接kill了oozie,就必须删除上图红框框选的文件

    浏览器页面访问:http://node03:11000/oozie/

  • 修正oozie浏览器页面时区问题

    显示为GMT时区

    cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie-server/webapps/oozie
    vim oozie-console.js

    修改为GMT+0800即可

    function getTimeZone() {
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
    return Ext.state.Manager.get("TimezoneId","GMT+0800");
    }

    重启oozie即可


使用

【Hadoop离线基础总结】oozie的安装部署与使用的更多相关文章

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

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

  2. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

  3. 【Hadoop离线基础总结】流量日志分析网站整体架构模块开发

    目录 数据仓库设计 维度建模概述 维度建模的三种模式 本项目中数据仓库的设计 ETL开发 创建ODS层数据表 导入ODS层数据 生成ODS层明细宽表 统计分析开发 流量分析 受访分析 访客visit分 ...

  4. 【Hadoop离线基础总结】Sqoop常用命令及参数

    目录 常用命令 常用公用参数 公用参数:数据库连接 公用参数:import 公用参数:export 公用参数:hive 常用命令&参数 从关系表导入--import 导出到关系表--expor ...

  5. 【Hadoop离线基础总结】Hive调优手段

    Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...

  6. 【Hadoop离线基础总结】Hive的安装部署以及使用方式

    Hive的安装部署以及使用方式 安装部署 Derby版hive直接使用 cd /export/softwares 将上传的hive软件包解压:tar -zxvf hive-1.1.0-cdh5.14. ...

  7. 【Hadoop离线基础总结】工作流调度器azkaban

    目录 Azkaban概述 工作流调度系统的作用 工作流调度系统的实现 常见工作流调度工具对比 Azkaban简单介绍 安装部署 Azkaban的编译 azkaban单服务模式安装与使用 azkaban ...

  8. 【Hadoop离线基础总结】日志采集框架Flume

    日志采集框架Flume Flume介绍 概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.它可以采集文件,socket数据包.文件.文件夹.kafka等各种形式源数据,又可 ...

  9. 【Hadoop离线基础总结】Hue与oozie集成

    目录 1.停止oozie与hue的进程 2.修改oozie的配置文件 3.修改hue的配置文件 4.启动hue与oozie的进程 5.页面访问hue 1.停止oozie与hue的进程 bin/oozi ...

随机推荐

  1. EwoMail开源邮件服务器软件搭建

    EwoMail开源邮件服务器软件简介 EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署.简单高效.多语言.安全稳定的邮件解决方案,帮助你提升运维效率,降低 ...

  2. A - Free DIY Tour HDU - 1224

    题目大意:每一个城市都有一定的魅力值,然后有一个有向图,根据这个有向图从1到n+1所获得的魅力的最大值,并输出路径(要求只能从编号娇小的城市到编号较大的城市). 题解:很容易想到最短路+路径纪录.但是 ...

  3. niuke --abc

    链接:https://ac.nowcoder.com/acm/contest/1083/A来源:牛客网 给出一个字符串s,你需要做的是统计s中子串”abc”的个数.子串的定义就是存在任意下标a< ...

  4. 【论文研读】强化学习入门之DQN

    最近在学习斯坦福2017年秋季学期的<强化学习>课程,感兴趣的同学可以follow一下,Sergey大神的,有英文字幕,语速有点快,适合有一些基础的入门生. 今天主要总结上午看的有关DQN ...

  5. sqli-labs通关教程----31~40关

    第三十一关 这关一样,闭合变成(",简单测试,#号不能用 ?id=1") and ("1")=("1")--+ 第三十二关 这关会把我们的输 ...

  6. 基于Lua的游戏服务端框架简介

    基于Lua的游戏服务端框架简介 [转]https://gameinstitute.qq.com/community/detail/106396 基于lua的游戏服务端框架简介 1. 引言 笔者目前在参 ...

  7. Laravel joinSub 子查询的写法

    $subQuery = $model::query() ->from('table1 as a') ->getQuery(); $query = $model::query() -> ...

  8. 1. ajax递归并发处理

    在某些情况下可能会需要循环ajax请求,可以利用递归发送 function recursion( index,array ) { if ( index < array.length ) { // ...

  9. Java集合案例(产生不重复随机数)

    获取10个1-20之间的随机数,要求不能重复 用数组实现,但是数组的长度是固定的,长度不好确定.所以我们使用集合实现. 分析:A:创建产生随机数的对象B:创建一个存储随机数的集合C:定义一个统计变量. ...

  10. 计算某天的下一天:黑盒测试之等价类划分+JUnit参数化测试

    题目要求 测试以下程序:该程序有三个输入变量month.day.year(month.day和year均为整数值,并且满足:1≤month≤12.1≤day≤31和1900≤year≤2050),分别 ...