zoukankan      html  css  js  c++  java
  • oozie安装总结

    偶然的机会,去面试的时候听面试官讲他们的调度系统是基于hue+oozie,以前一直没有接触过,今天趁有空,尝试一下oozie

    1.环境说明

    1. cat /etc/issue  CentOS release 6.2 (Final)
    2. hadoop-2.2.0
    3. oozie-4.3.0
    4. jdk 1.7.0_45
    5. apache-maven-3.0.5

    还需要说明的是,oozie 本身 apache 只提供源码,需要自己编译,编译需要的软件在官方有说明

    Unix box (tested on Mac OS X and Linux)
    Java JDK 1.6+
    Maven 3.0.1+
    Hadoop 0.20.2+
    Pig 0.7+

    我这里在安装时并没有安装pig也能成功编译。

    2.安装步骤

    1.maven 安装

    2.oozie 安装

       git clone 

       编译:

    bin/mkdistro.sh -DskipTests
    

    编译后的文件在distro/target文件夹内,我这里的文件名为oozie-4.3.0-SNAPSHOT-distro.tar.gz

    3. 安装oozie server

    经过上面的编译,我们得到了二进制版的oozie,下面就可以部署server了,由此可见oozie使用的BS模式。
    解压oozie-4.1.0-distro.tar.gz这个编译后的文件,进入该目录,创建文件夹libext

    tar -xvf oozie-4.3.0-SNAPSHOT-distro.tar.gz
    cd cd oozie-4.3.0-SNAPSHOT
    mkdir libext
    

    oozie server 需要用到一个js库,但是该js库官方给的链接已经失效了,有个大侠废了好大劲在网上找了个,传到了csdn上,大家下载后把ext-2.2.zip这个文件放的libext文件夹里。
    然后,把hadoop的一些jar把也放到这个libext文件夹内,大家可参考下面这个命令

    cp ${HADOOP_HOME}/share/hadoop/*/*.jar libext/
    cp ${HADOOP_HOME}/share/hadoop/*/lib/*.jar libext/
    

    这里有个大坑,oozie server默认使用tomcat 6.0.41,而hadoop也有内置的server,如果按照上面两个命令把hadoop依赖的jar包都拷贝过去,有可能出现冲突,这两个server使用的servlet、jsp版本很可能不一样。

    这里需要把这几个jar包删除,不要放到libext中

    rm jasper-compiler-5.5.23.jar
    rm jasper-runtime-5.5.23.jar
    rm jsp-api-2.1.jar
    

    oozie server还需要依赖个数据库,我这里用的是常用的postgres,所以需要把postgres的驱动jar包也放的libext中。

    然后修改conf/oozie-site.xml这个配置文件

     <property>
        <name>oozie.service.JPAService.create.db.schema</name>
          <value>true</value>
        </property>
    <property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>org.postgresql.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:postgresql://l-tdata2.tkt.cn6.qunar.com/oozie?createDatabaseIfNotExist=true</value>
    </property>
    
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>**</value>
    </property>
    
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>**</value>
    </property>
    <property>
        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
        <value>*=/home/q/hadoop/hadoop-2.2.0/etc/hadoop</value>
    </property>
    

    上面的配置中,指定了hadoop配置文件位置:*=/home/q/hadoop/hadoop-2.2.0/etc/hadoop,这里的*=不能少,你根据实际情况修改你的hadoop路径即可。

    好,上面的步骤完成后,就可以生产server的war包了:

    bin/oozie-setup.sh prepare-war
    

    bin/oozie-setup.sh db create -run -sqlfile oozie.sql
    执行完后,会在当前目录下生成 oozie.sql文件,同时初始化oozie的db环境。oozie.sql文件是oozie执行数据库的脚本。可以用于以后初始化,或者更新用。

    最后,激动人心的时候就要到了,根据上面伪装功能的配置,我用oozie用户开启server:

    bin/oozied.sh start
    
  • 相关阅读:
    任何时候都适用的20个C++技巧
    C++ 解析Json——jsoncpp(转)
    C++标准库和标准模板库(转)
    string标准C++中的的用法总结(转)
    JOIN US | 京东智联云诚聘技术精英
    在线公开课 | 云原生下的DevOps与持续交付
    AI端侧落地,京东AI技术如何部署边缘?
    CVPR 2020 | 京东AI研究院对视觉与语言的思考:从自洽、交互到共生
    IOT、AI、云计算等融合技术推进制造业产业转型
    边缘计算2.0时代,“云边缘”与“边缘云”你分清了吗?
  • 原文地址:https://www.cnblogs.com/duanxingxing/p/5015709.html
Copyright © 2011-2022 走看看