版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/wl101yjx/article/details/27881739

写在前面一:

本文总结 基于Hadoop的工作流调度系统——Oozie

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

写在前面二:

使用软件说明:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

约定全部软件的存放文件夹:/home/yujianxin

一、什么是Oozie

1、Oozie是一个开源的基于Hadoop的工作流调度系统,用于执行Hadoop Map/Reduce和Pig
任务工作流。同一时候Oozie还是一个Java Web程序。执行在Java Servlet容器中,如Tomcat。
2、 Oozie工作流中拥有多个Action,如Hadoop Map/Reuce job,Hadoop Pig job等。全部的Action以有向无环图(DAG
Direct Acyclic Graph)的模式部署执行.所以在Action的执行步骤上是有方向的,仅仅能上一个Action执行完毕后才干执行下一个Action。

3、Oozie工作流通过HPDL(一种通过XML自己定义处理的语言。相似JBOSS
JBPM的JPDL)来构造。
4、 Oozie工作流中的Action在远程系统执行如(Hadoop。Pig服务器上)。

一旦Action完毕。远程服务器将回调Oozie的接口并通知Action已经完毕,这时Oozie又会以相同的方式执行工作流中的下一个Action。直到工作流中全部Action都完毕(完毕包括失败)。

       Oozie工作流中包括可控制的工作流节点(control flow node)和Action节点(action node).
       Control flow node事实上能够理解为Oozie的语法,比方能够定义開始(start),结束(end)。失败(fail)节点.開始节点就表示从该节点開始执行.同一时候也提供一种机制去控制工作流的执行过程,如选择(decision),并行(fork),join节点.
       Oozie工作流提供各种类型的Action用于支持不同的须要,如Hadoop Map/Reduce,Hadoop File System。Pig,Hive,Streaming,SSH,HTTP。Email。Java,以及Oozie子流程.Oozie也支持自己定义扩展以上各种类型的Action
.
       Oozie工作流同意自己定义參数,如${inputDir}.
       Oozie使用自己定义的xml语言hPDL来定义工作流。
       Oozie使用MySQL存储元数据。

二、Oozie安装配置

安装Oozie Server
Oozie Server能够为我们提供非常多管理Job的便捷功能,比方。通过可视化界面去管理Job的执行状态。同一时候也支持我构建含有多个复杂Hadoop Job流程,各个Job之间的依赖关系全然能够通过一个工作流配置文件组装起来。然后由Oozie Server其管理执行。

2.1、安装Maven。參考http://blog.csdn.net/aaronhadoop/article/details/27834181

2.2、安装MySQL,參考http://blog.csdn.net/aaronhadoop/article/details/24748411

2.3、安装Tomcat。參考http://blog.csdn.net/aaronhadoop/article/details/24748057

2.3、安装Oozie

2.3.1、使用Maven构建oozie

<span style="font-family:SimSun;">cd /home/yujianxin/oozie
tar -zxvf oozie-3.3.2.tar.gz
cd /home/yujianxin/oozie/oozie-3.3.2
bin/mkdistro.sh -DskipTests</span>

构建后可在oozie-3.3.2/distro/target文件夹下看到构建后的文件,我的路径是:/home/yujianxin/Ooize/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2。

约定此文件夹为Oozie的安装文件夹。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

2.3.2、加入环境变量

2.3.3、在$OOZIE_HOME下创建文件夹libext。并将ext的包、MySQL的驱动包和hadoop相关的jar库文件复制到libext下面

<span style="font-family:SimSun;">cp /home/yujianxin/Oozie/ext-2.2.zip $OOZIE_HOME/libext/
cp /home/yujianxin/hive/hive-0.9.0/lib/mysql-connector-java-5.1.10.jar ./libext/
cp /home/yujianxin/hadoop/hadoop-1.1.2/hadoop-*.jar ./libext/
cp /home/yujianxin/hadoop/hadoop-1.1.2/lib/*.jar ./libext/
</span>

2.3.4、执行下面命令開始安装

<span style="font-family:SimSun;">cd $OOZIE_HOME
bin/oozie-setup.sh prepare-war</span>

生成$OOZie/oozie-server/webapps/oozie.war文件

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

2.3.5、配置Oozie

<span style="font-family:SimSun;">cd /home/yujianxin/Oozie/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2/conf
vi oozie-site.xml <property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC driver class.
</description>
</property> <property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://222.22.91.68:3306/oozie</value>
<description>
JDBC URL.
</description>
</property> <property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
<description>
DB user name.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>zutcs_root_68</value>
<description>
DB user password. IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
if empty Configuration assumes it is NULL.
</description>
</property></span>

默认情况下,Oozie的配置中有个配置项oozie.service.JPAService.create.db.schema,值为false,设置非自己主动创建数据库,我们保持默认设置,这样能够通过手动创建Oozie数据库,并对其进行权限控制。然后,我们在MySQL数据库中创建数据库,名称为oozie,并进行訪问授权:
CREATE DATABASE oozie;
GRANT ALL ON oozie.* TO 'shirdrn'@'oozie-server' IDENTIFIED BY '0o21e';
FLUSH PRIVILEGES;

然后能够执行例如以下命令。生成Oozie所须要的数据表:
bin/ooziedb.sh create -sqlfile oozie.sql -run
启动Oozie
cd $OOZIE_HOME
bin/oozied.sh start

查看图形化界面
http://slave3:11000/oozie

2.3.6、整合Oozie和Hadoop

<span style="font-family:SimSun;"><!-- OOZIE -->
<property>
<name>hadoop.proxyuser.root(username).hosts</name>
<value>192.168.131.133</value>
</property>
<property>
<name>hadoop.proxyuser.root(username).groups</name>
<value>root</value>
</property></span>

重新启动Hadoop集群。

安装Oozie Client

    我们能够通过在外部的一个Oozie客户端去提交工作流任务,实际上就是一个客户端程序,通过与Oozie
Server进行交互。提交任务,并由Oozie Server去调用执行。

回到oozie-3.3.2.tar.gz解压缩的文件夹下。通过前面的构建,如今已经能够看到有一个client文件夹,该文件夹下就是Oozie的客户端相关文件。

    含有Oozie客户端脚本的路径,我这里为/home/yujianxin/Oozie/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2。

    查看Oozie客户端执行job命令的帮助信息

<span style="font-family:SimSun;">cd /home/yujianxin/Oozie/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2
bin/oozie help
bin/oozie help job</span>

我们能够找到。Oozie发行包中自带的examples。我这里相应的文件夹是/home/yujianxin/Oozie/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/examples/apps,我们能够通过执行这些样例来验证安装是否成功。执行下面命令

<span style="font-family:SimSun;">hadoop fs -put /home/yujianxin/Oozie/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/ /Oozie/child1/examples</span>

我们拿examples中的map-reduce来进行验证,改动job.properties文件,配置内容例如以下所看到的:

<span style="font-family:SimSun;">cd /home/yujianxin/Oozie/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/examples/apps/map-reduce
改动job.properties
nameNode=hdfs://slave3:9000
jobTracker=slave3:9001
queueName=default
examplesRoot=examples oozie.wf.application.path=${nameNode}/Oozie/child1/examples/oozie-examples-3.3.2-examples/examples/apps/map-reduce outputDir=map-reduce_yjx</span>

执行任务

<span style="font-family:SimSun;">cd /home/yujianxin/Oozie/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2
</span>

通过OozieWeb管理控制台查看提交执行的任务


点击详细某个job

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

查看作业执行的拓扑图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2wxMDF5ang=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

此处仅仅是实现了Oozie的安装、配置及測试了官方自带的程序。在项目中的实际应用欢迎qq(1152596901)交流

Oozie-1-安装、配置 让Hadoop流动起来的更多相关文章

  1. 【Oozie】安装配置Oozie

    安装和配置Oozie Oozie用于Hadoop的工作流配置: 参考链接: <Install and Configure Apache Oozie Workflow Scheduler for ...

  2. Ubuntu15.10下Hadoop2.6.0伪分布式环境安装配置及Hadoop Streaming的体验

    Ubuntu用的是Ubuntu15.10Beta2版本,正式的版本好像要到这个月的22号才发布.参考的资料主要是http://www.powerxing.com/install-hadoop-clus ...

  3. Hadoop单机安装配置过程:

    1. 首先安装JDK,必须是sun公司的jdk,最好1.6版本以上. 最后java –version 查看成功与否. 注意配置/etc/profile文件,在其后面加上下面几句: export JAV ...

  4. Hadoop集群搭建-05安装配置YARN

    Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚 ...

  5. Hadoop集群搭建-04安装配置HDFS

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

  6. Hadoop集群搭建-02安装配置Zookeeper

    Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS  Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...

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

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

  8. Hadoop的学习--安装配置与使用

    安装配置 系统:Ubuntu14.04 java:1.7.0_75 相关资料 官网 下载地址 官网文档 安装 我们需要关闭掉防火墙,命令如下: sudo ufw disable 下载2.6.5的版本, ...

  9. CentOS 7 Hadoop安装配置

    前言:我使用了两台计算机进行集群的配置,如果是单机的话可能会出现部分问题.首先设置两台计算机的主机名 root 权限打开/etc/host文件 再设置hostname,root权限打开/etc/hos ...

随机推荐

  1. Delphi通过管道执行外部命令行程序(cmd)并获取返回结果

    该代码片段来自于: http://www.sharejs.com/codes/delphi/8999,发现好多代码,想用的时候找不到,记录一下备用 function RunDosCommand(Com ...

  2. retain和copy还有assign的区别

    1. 接触过C,那么假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给 (assign)了b.此时a和b指向同一块内存,请问当a不再需 ...

  3. many-to-one多对一属性说明

    通过many-to-one元素,可以定义一种常见的与另一个持久化类的关联. 这种关系模型是多对一关联(实际上是一个对象引用-译注):这个表的一个外键引用目标表的 主键字段. <many-to-o ...

  4. linux yum 安装软件

    概括了部分常用的yum命令包括: 自动搜索最快镜像插件:yum install yum-fastestmirror安装yum图形窗口插件:yum install yumex 1 安装yum insta ...

  5. Qt编程简介与基本知识

    1. 什么是Qt? Qt是一个基于C++的跨平台应用程序和UI开发框架.它包含一个类库,和用于跨平台开发及国际化的工具. 由挪威Trolltech公司开发,后被Nokia收购,目前被Digia公司收购 ...

  6. 想给自己的实景三维模型做个案例集?Wish3D Earth再合适不过了

    很多朋友向用户展示实景三维模型的时候经常面临这样的问题:

  7. Php网站如何优化才好?

    尽量静态化:    如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.   当然了,这个测试方法需要在十万级以上次执行,效果才明显.   其实静态方法和非 ...

  8. CSS之BFC

    BFC(Block Formatting Context,块格式上下文) 具有BFC特性的元素能够看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素. 在CSS3中.BFC叫做Flow ...

  9. Spring 小记

    本作品由Man_华创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.基于http://www.cnblogs.com/manhua/上的作品创作. 使用STS新建spr ...

  10. RAM和ROM和Flash ROM的区别

    转;http://openedv.com/thread-81182-1-1.html                           http://www.sohu.com/a/112676146 ...