oozie 4.0.0 on hadoop2.4.1安装笔记(完整版)

oozie版本:4.0.0(开始在官网下载4.0.1的版本,编译一直无法通过,报错说oozie-hadoop-4.0.1的jar,换4.0.0竟然没报错,不解)

hadoop 2.4.1 由于测试集群用了改版本,无奈,原本github上有编译好的oozie,但是最高才3.0,只能支持hadoop 2.0

==================================华丽的分割====================================

1.下载oozie源码[http://archive.apache.org/dist/oozie/4.0.0/]

2.下载ext2.2.zip【http://oozie.apache.org/docs/4.0.1/DG_QuickStart.html】

3.下载http-client和http-core(oozie.war 需要该包,否则server起来后,访问页面会报错)

4.解压oozie包后修改pom.xml,jdk改为1.7,hadoop.version改为2.4.1(其它hbase,pig等相应修改)

5.添加环境变量;

------------------------------------------------------------------------------------------------------------------------------

export HADOOP_HOME=/usr/local/hadoop

export HADOOP_INSTALL=/usr/local/hadoop

export HADOOP_MAPRED_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_HOME=$HADOOP_INSTALL

export HADOOP_HDFS_HOME=$HADOOP_INSTALL

export YARN_HOME=$HADOOP_INSTALL

export OOZIE_HOME=/opt/oozie

export OOZIE_CONFIG=/opt/oozie/conf

PATH=$PATH:$HOME/bin:/usr/local/zookeeper-3.4.6/bin:$HADOOP_HOME/bin:$OOZIE_HOME/bin

------------------------------------------------------------------------------------------------------------------------------

6.编译oozie,进入bin,执行【mkdistro.sh -DskipTests】,进入漫长的编译过程,中间卡住,退出重新编译,直至全部success

7.将编译好的oozie-4.0.0-distro.tar.gz拷出来,解压,创建软链ln -s oozie-4.0.0 oozie[个人习惯,直接使用oozie-4.0.0也可以]

8.进入bin目录,打包可用war:

addtowar.sh -inputwar /opt/oozie/oozie.war -outputwar /opt/oozie/oozie-server/webapps/oozie.war -hadoop 2.4.1 /usr/local/hadoop -extjs /app/oozie/ext-2.2.zip

9.初始化db:

/ooziedb.sh create -sqlfile oozie.sql 

接着执行如下命令,执行oozie数据库脚本文件,初始数据库

./oozie-setup.sh db create -run  -sqlfile ./oozie.sql 

10.启动oozie服务:

oozie-run.sh 或者 oozied.sh start

11.访问 http://localhost:11000/oozie/,应该会报错,将之前下载的httpclient和httpcore包拷到oozie-server/webapps/WEB_INF/lib下,重新启动,可以访问到页面了

===========================================测试oozie自带examples=============================

12.将oozie/oozie-examples.tar.gz 解压,这里我们测试shell示例,将job.propertis文件打开,修改下面两个参数:

nameNode=hdfs://hadoop6:9000

jobTracker=hadoop6:8032

改之前可以telnet下端口是否可用,不可用检查hadoop的配置

13.修改hadoop的core-site.xml配置,添加:(如果不是root用户,改成当前使用的用户)

<property>

     <name>hadoop.proxyuser.root.hosts</name> 

     <value>*</value>

</property>

<property>

     <name>hadoop.proxyuser.root.groups</name>

     <value>root</value>

</property>

14.修改oozie下的配置,如下配置添加到【oozie/conf/hadoop-conf/core-site.xml】:(在hadoop的hadoop/etc/hadoop/mapred-site.xml中找到对应配置)

<property>

        <name>mapreduce.jobhistory.address</name>

        <value>hadoop6:10020</value>

    </property>

检查下改端口是否可用,不可用的话,登录到jobtracker所在机器,启动hadoop的服务:【mr-jobhistory-daemon.sh start historyserver】

15.重启下oozie-server服务,将shell下的文件put到hadoop上对应目录【oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/shell】

16.在命令行下提交oozie任务:【oozie job -oozie http://192.168.69.16:11000/oozie/ -config /app/tmp/shell/job.properties -run】

web界面上应该产生了一条job记录!不出意外,应该可以执行成功!

相关推荐