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记录!不出意外,应该可以执行成功!