zoukankan      html  css  js  c++  java
  • Oozie-4.0.0-cdh5.3.6搭建

    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 0 ]
    then
        echo 缺少参数
        exit 1
    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 ' '

    参考:

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

    3. https://issues.apache.org/jira/browse/OOZIE-1981
  • 相关阅读:
    IOC(控制反转)
    JQuery中的DOM操作
    【JQuery的选择器】
    JPA基本注解介绍
    JPA使用的HelloWorld
    JPA的介绍
    JQuery简介及HelloWorld
    SpringMvc处理post请求乱码的filter
    Sping3.0版本+Quartz完成定时任务
    CentOS下安装Subversion (SVN)
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/6077865.html
Copyright © 2011-2022 走看看