1. 到官网下载安装包 解压并cd到安装目录
  2. 解压目录下的 oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz  会自动解压成目录hadooplibs
  3. 创建文件夹 libext
  4. 将hadooplibs下面的jar包复制到libext下面
  5. 下载EXTJS 库并把zip文件放到libext下
  6. 编辑文件 conf/oozie-site.xml(这里可以做数据库相关的配置,用默认的也可以)
    <property>
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
    <value>*=/usr/hadoop/hadoop-2.6.0/etc/hadoop</value>
    <description>hadoop的配置文件目录,如果不配置的话,运行任务会报File /.../share/lib does not exist 的错误</description>
    </property>
    <property>
    <name>oozie.processing.timezone</name>
    <value>GMT+0800</value>
    <description>这个是设置时区,很重要,否则创建定时任务会有麻烦</description>
    </property <!--如果使用mysql 则修改下面内容-->
    <property>
    <name>oozie.service.StoreService.jdbc.driver</name>
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
    <name>oozie.service.StoreService.jdbc.url</name>
    <value>jdbc:mysql://localhost:3306/oozie</value>
    </property>
    <property>
    <name>oozie.service.StoreService.jdbc.username</name>
    <value>oozie</value>
    </property>
    <property>
    <name>oozie.service.StoreService.jdbc.password</name>
    <value>oozie</value>
    </property>
  7. 创建数据库。有两种方式:①使用默认的;②使用指定的其他数据库(如MySql)
    • 如果使用mysql,记得把驱动包放到server的lib目录下(记着要先创建oozie用户)

      cp mysql-connector.jar oozie/oozie-server/webapps/oozie/WEB-INF/lib
    • 初始化数据库

      bin/ooziedb.sh create -sqlfile oozie.sql -run
  8. 解压sharelib-yarn压缩包,会得到share目录
  9. 安装
  10. bin/oozie-setup.sh  prepare-war sharelib create -fs hdfs://sardoop -locallib /opt/software/oozie-4.0.0-cdh5.3.6/share  
    #正常的话 最后会显示:Oozie is ready to be started

    setup的相关细化配置参考官网文档,如果在这一步中没有配置sharelib,在启动后也可以继续设置,而且不需要重启oozie:

    bin/oozie-setup.sh sharelib create -fs hdfs://sardoop -locallib /opt/software/oozie-4.0.0-cdh5.3.6/share  #从本地目录向hdfs复制sharelib
    bin/oozie admin -oozie http://NameNode1:11000/oozie -sharelibupdate #更新oozie的sharelib
    bin/oozie admin -oozie http://localhost:11000/oozie -shareliblist #查看sharelib列表(正常应该有多条数据)

    注:如果sharelib设定不正确,会出现错误【 Could not locate Oozie sharelib
  11. 启动

    作为守护进程启动:

    bin/oozied.sh start

    作为后台进程启动:

    bin/oozied.sh run

    验证。可以访问 http://localhost:11000/oozie/,或者用命令

    bin/oozie admin -oozie http://localhost:11000/oozie -status  #成功的话 应该显示:System mode : NORMAL
  12. 停止
    bin/oozied.sh stop
  13. 在$HADOOP_HOME/etc/hadoop/core-site.xml中配置Oozie用户。然后重启Hadoop集群 (该步骤省略)
  14. 安装Oozie Client。该CDH版本本身就是Client,所以不需要额外处理。
  15. 用Oozie自带的examples验证安装状况:
    1. 将Oozie自带的examples上传到HDFS

      $HADOOP_HOME/bin/hadoop dfs -mkdir /oozie
      
      $HADOOP_HOME/bin/hadoop dfs -copyFromLocal $OOZIE_HOME/examples /user/hadoop/examples #最后的这个路径是hdfs上的路径
    2. 修改 examples/apps/map-reduce/job.properties 文件(节点上的,不是hdfs上的)
      nameNode=hdfs://NameNode2:9820
      jobTracker=localhost:8032
      queueName=default
      examplesRoot=examples oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce/workflow.xml
      outputDir=map-reduce
    3. 执行job
      bin/oozie job -oozie http://NameNode1:11000/oozie -config examples/apps/map-reduce/job.properties -run

      执行后先显示jobID

    4. 执行之后就可以在 http://NameNode1:11000/oozie 看到job状况。或者拿着刚才的jobid查询
      bin/oozie job -oozie http://NameNode1:11000/oozie -info 0000000-161118140334164-oozie-hado-W

    5. 对于自已的jar包,放到hdfs上 跟workflow.xml一个目录下,或者创建一个lib目录然后放进去就行了

可参考:如何查看MapReduce执行的程序中的输出日志

注:

 1.关于时区

因为我们更改了默认的时区,设置start和end的时候也要使用对应的格式

--原来 start=2016-11-23T09:57Z --现在 start=2016-11-23T09:57+0800

同时,如果是coordinator应用,需注意coordinator.xml文件timezone属性值如下timezone="Asia/Shanghai";如果要在http://namenode1:11000/oozie/ 上查看 还需要设置Setting

 2.如何运行WorkFlow

关于如何运行自己的Workflow和Action,教程中是把examples目录整个放到hdfs上面,里面还有好多源码什么的,实际上这些都没有用;自己用的时候,在hdfs上创建个文件夹存放workflow.xml,coordinator.xml以及jar包就可以了。具体怎么定位到这些配置呢?job.properties都帮我们做了,里面是设置了应用目录的。

3.Oozie运行hive action。

按照官方的实例运行,发现Job总是KILLED,日志显示【java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient】

解决方法:在configuration下面添加一个属性[hive.metastore.uris]即可

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.2" name="hive-wf">
<start to="hive-node"/>
<action name="hive-node">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="${nameNode}/user/${wf:user()}/${root}/output-data/hive"/>
<mkdir path="${nameNode}/user/${wf:user()}/${root}/output-data"/>
</prepare>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://NameNode1:9083</value>
</property>

</configuration>
<script>script.q</script>
<param>INPUT=/user/${wf:user()}/${root}/input-data/table</param>
<param>OUTPUT=/user/${wf:user()}/${root}/output-data/hive</param>
</hive>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>

4.coordinator的frequency可以有两种设定方式

  1. frequency="5 * * * *"
  2. frequency="${coord:minutes(5)}"

5.Oozie依赖的第三方jar包

这里面的jar包分两类:Action中用到的,与Oozie结合的组件需要用到的。

①Action依赖的jar:

需要我们在Export程序的时候,打到程序里面。

②组件依赖的jar:

需要把jar包放到oozie的share/lib下面  并update到hdfs上

如Hive与HBase关联使用的时候,就需要 hive-hbase-handler.jar

否则会出现问题【Class org.apache.hadoop.hive.hbase.HBaseSerDe not found】

6.有关帮助脚本

①用于kill  oozie的job;
使用方法 ./kill.sh
if [ $# -le  ]
then
echo 缺少参数
exit
fi
/opt/software/oozie/bin/oozie job -oozie http://NameNode1:11000/oozie -kill $1

7.Sqoop Action

export --connect jdbc:mysql://NameNode1:3306/test\
--username root\
--password 123\
--table loghour\
--m 2\
--export-dir /user/hive/warehouse/loghourtmp\
--input-fields-terminated-by '\t'

参考:

  1. CDH5.3 Oozie服务搭建
  2. Oozie-3.3.2安装配置运行实践

  3. https://issues.apache.org/jira/browse/OOZIE-1981

Oozie-4.0.0-cdh5.3.6搭建的更多相关文章

  1. Hadoop-2.3.0-cdh5.0.1完全分布式环境搭建(NameNode,ResourceManager HA)

    编写不易,转载请注明(http://shihlei.iteye.com/blog/2084711)! 说明 本文搭建Hadoop CDH5.0.1 分布式系统,包括NameNode ,Resource ...

  2. Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14(我用的php 5.3.10安装版) MySQL版本:MySQL5.5.25 ...

  3. vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境

    转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...

  4. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  5. SDL2.0的VS开发环境搭建

    SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载 ...

  6. Spark1.0.0 开发环境高速搭建

          在本系列博客中.为了解析一些概念.解析一些架构.代码測试.搭建了一个实验平台.例如以下图所看到的:       本实验平台是在一台物理机上搭建的.物理机的配置是16G内存,4核8线程CPU ...

  7. Hadoop上路-01_Hadoop2.3.0的分布式集群搭建

    一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...

  8. 基于Hadoop 2.2.0的高可用性集群搭建步骤(64位)

    内容概要: CentSO_64bit集群搭建, hadoop2.2(64位)编译,安装,配置以及测试步骤 新版亮点: 基于yarn计算框架和高可用性DFS的第一个稳定版本. 注1:官网只提供32位re ...

  9. 【Spark学习】Spark 1.1.0 with CDH5.2 安装部署

    [时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.c ...

  10. Spark1.0.0 分布式环境搭建

    软件版本号例如以下: Hostname IP Hadoop版本号 Hadoop 功能 系统 master 192.168.119.128 1.1.2 namenode jdk1.6+hadoop+sc ...

随机推荐

  1. Cesium应用篇:1快速搭建

    范例中所有范例可以在Github中搜索:ExamplesforCesium Cesium ['siːzɪəm]是一款开源的JavaScript开源库,开发者通过Cesium,实现无插件的创建三维球和二 ...

  2. js构建ui的统一异常处理方案(一)

    从早期从事基于java的服务器端开发,再到之后从事基于web和js的ui开发,总体感觉基于web页面的ui开发远不如服务器端健壮.主要是早期ie浏览器功能太弱小,很多业务被迫放到服务器端去实现,浏览器 ...

  3. Windows Phone 8 开发系列(持续更新中)

    1. 从应用列表再次点击应用,如何恢复到上次浏览的页面呢? 2. Windows Phone 文本框的 UpdateSourceTrigger 属性不支持 PropertyChanged 怎么办? 3 ...

  4. unity3D-iOS工程整合爬过的坑~

    unity3D-iOS工程整合爬过的坑~ 好久好久没有写博了~ 最近换了一份有意思的新工作,也是当下最热门的新技术,AR技术.笔者之前一直是做iOS开发的,接触了一门全新的技术,兴奋了好久好久,笔者也 ...

  5. jquery的事件命名空间详解

    jquery现在的事件API:on,off,trigger支持带命名空间的事件,当事件有了命名空间,就可以有效地管理同一事件的不同监听器,在定义组件的时候,能够避免同一元素应用到不同组件时,同一事件类 ...

  6. MVC学习系列9--控制器接收从视图传递过来的参数

    前面学习了,从控制器向视图传递数据,现在学习怎么从视图向控制器传递数据. 通常,我们有两种方式,来处理浏览器的请求,一个是GET方式,一个是POST方式.一般来说,直接通过在浏览器中输入URL话,请求 ...

  7. 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效。

    当访问 https 内容的时候,有时候经常会看到证书错误(不在操作系统的证书信任链中?)的提示,在浏览器中我们可以忽略错误的证书,继续访问网页内容. 但是在 .NET 程序中,需要由代码来判断是否忽略 ...

  8. DDL/DML是什么?

    DDL:(Data Definition Language)数据库定义语言 它是定义数据库的语言, 里面包含: CREATE ALTER DROP TRUNCATE COMMENT RENAME DM ...

  9. Composer根据Name显示与隐藏

    //主要设置 模型的显示与隐藏 private void TransmissionByData_AxSendSelectionChange(string domName, bool isVisible ...

  10. 基于CkEditor实现.net在线开发之路(5)列表页面开发

    这章主要讲解利用控件开发列表页面,我们先从最简单的列表页面开始讲解,这个列表只有一个列表展示.具体开发步骤请看下面动态图 由上动态图可以看出,开发一个简单的列表只有两步, 第一步:拖拽查询控件,设置好 ...