oozie的安装部署及配置感觉不是一般的繁琐,而且层出不穷的bug也弄的我焦头烂额,下面主要讲下我的安装过程及遇到的问题 一.必要准备: 1.Apache的tomcat 2. mysql-connector-java-5.1.6.jar 或其他版本的 mysql-connectorjar 包 3.ext-2.2.zip 二.安装部
oozie的安装部署及配置感觉不是一般的繁琐,而且层出不穷的bug也弄的我焦头烂额,下面主要讲下我的安装过程及遇到的问题
一.必要准备:
1. Apache的tomcat
2. mysql-connector-java-5.1.6.jar 或其他版本的 mysql-connectorjar 包
3. ext-2.2.zip
二.安装部署
0.下载oozie-3.3.2的tar包,并解压:tar -xvf oozie-3.3.2.tar。oozie4.0.0安装失败了,原因是oozie-setup.sh一直执行不通过,希望那位大牛的赐教一下。
1. 在解压出来的目录下, 修改 pom.xml 中的 hadoop 版本为您所需要的版本,我的是 hadoop-2.2.0,这一步是因为oozie需要根据hadoop版本进行编译
2. 修改 hadooplib 下相应的版本目录下的 pom.xml 文件中的 hadoop 版本,这个目录下生成的 lib 待会会用到
3. 执行 bin/mkdistro.sh –DskipTests ,进行编译
4. 编译之后可以在 OOZIE_HOME/distro/target/ 下找到 oozie-3.3.2-distro ,这个就是编译好的版本,我们之后的部署就是部署这个目录下的 oozie ,若无特别说明,安装目录也是指这个目录
5.oozie 安装目录下,解压 share , example (可选), clint 三个 tar 包,如下:
oozie-client-3.3.2.tar.gz
oozie-examples.tar.gz
oozie-sharelib-3.3.2.tar.gz
6. 把 share tar 包解压出来的文件夹, share ,上传到 hdfs 的 oozie 用户下:
hadoop fs –put share
7.oozie 安装目录下新建文件夹 libext ,在第二步 hadooplib 目录下找到相应版本,在里边的 target 目录下可以找到对应的 lib 目录,把里边的所有 jar 包 copy 到新建的 libext 下
8.添加mysql相关包:
bin/oozie-setup.sh -jars mysql-connector-java-5.1.6.jar -extjs /ext-2.2.zip
注意mysql-connector和ext的jar包路径不要写错
9. 添加 hadoop 相关包
$OOZIE_HOME/bin/oozie-setup.sh -hadoop 2.2.0 ${HADOOP_PREFIX} -extjs /ext-2.2.zip
10. 把 mysql-connector jar 包 copy 到 lib , libext 下
11. 环境变量
etc/profile: 主要是设置 oozie , apache ,如下
export OOZIE_HOME=/usr/lib/cloud/oozie/oozie
export CATALINA_HOME=/usr/lib/cloud/oozie/apache-tomcat-7.0.42
export PATH="${CATALINA_HOME}"/bin:$PATH
export OOZIE_URL=http://localhost:11000/oozie
export PATH="${OOZIE_HOME}"/bin:${PATH}
12.修改oozie-site.Xml文件:添加如下 ,感觉直接用默认的就好,不需要修改oozie-site.xml
oozie.service.JPAService.create.db.schema
true
13. 在 hadoop的core-site.xml中 添加如下,oozie为用户名,hadoop为oozie所在的
组
hadoop.proxyuser.oozie.hosts
192.168.237.128
hadoop.proxyuser.oozie.groups
hadoop
14 .在oozie目录下conf/hadoop-conf下,修改core-site.xml文件,添加:
yarn.resourcemanager.address
baby6:8032
yarn.resourcemanager.scheduler.address
master:8030
15.现在可以启动了,bin下执行oozie-start.sh
启动之后正常的话,可以在网页上看到如下界面,这就表示 看上去 成功了:
二.常见的问题:
1.运行的时候报下面的错误:
JA017: Unknown hadoop job [job_1384170946375_0004] associated with action [0000000-131111204232566-oozie-oozi-W@mr-node]. Failing this action!
变种很多,原因就是oozie找不到hadoop job,之前在MR1上运行的好好的,升级成hadoop 2.x.x上就容易出现这个问题。我的解决方法是,把jobhistory的配置相关信息放在oozie的conf/hadoop-conf/core-site.xml中,当然 首先你要开启jobhistory。
开启hadoop jobhistory的方式为$HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh start historyserver, 估计很多像我一样从hadoop 1.0.4升级上来的用户都会忘掉这一步
把如下信息放到oozie的conf/hadoop-conf/core-site.xml:
mapreduce.jobhistory.webapp.address
baby6:19888
mapreduce.jobhistory.intermediate-done-dir
/user/yarn/tmp
mapreduce.jobhistory.done-dir
/user/yarn/done
原因我估计是因为oozie-3.3.2对yarn的支持还不够,或者是因为我太弱了。
2.第二点也是因为升级hadoop才出现的,就是jobtracker的问题。hadoop 2.2.0中已经不存在jobtraker一说了,但oozie仍然需要这个参数,这显然还是版本兼容性的问题
解决方法很简单,把该填写jobtracker值的地方都填写上yarn.resourcemanager.address的值,默认的是 baby:8032,baby是你的主机名。一般需要在workflow或者job.properties里边改这个值,并且把yarn.resourcemanager.address写入到oozie的conf/hadoop-conf/core-site.xml里,就像前面第14条所说的
查看更多关于oozie3.3.2在hadoop2.2.0下的安装部署,及问题解决的详细内容...