Oozie 安装过程总结
最近公司要使用hue来作为hadoop图形化用户界面。hue由我一个同事搭建成功,我发现使用hue来创建工作流(workflow)时需要oozie的支持,下面给大家分享一下oozie安装过程总结。
环境说明:
1、CentOS 6.0
2、hadoop 2.6.0
3、oozie 4.1.0
安装oozie的前提条件是已经部署好hadoop集群。
安装步骤:
1、官网下载oozie
http://mirrors.cnnic.cn/apache/oozie/4.1.0/oozie-4.1.0.tar.gz
2、解压后,配置环境变量 ~/.bash_profile
3、安装Oozie Server
在oozie解压后的文件夹中创建 libext
mkdir libext
Oozie Server需要一个js库 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版本很可能不一样。
删除libext下的以下jar包
jasper-compiler-5.5.23.jar jasper-runtime-5.5.23.jar jsp-api-2.1.jar
oozie Server还需要依赖数据库,会把元数据和一些流程信息数据存储在数据库中。我们常用的是mysql,所以需要把mysql的驱动包放在libext中。
然后修改conf/core-site.xml
<property> <name>oozie.service.JPAService.create.db.schema</name> <value>true</value> </property> <property> <name>oozie.service.JPAService.jdbc.driver</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>oozie.service.JPAService.jdbc.url</name> <value>jdbc:mysql://localhost:3306/oozie?createDatabaseIfNotExist=true</value> </property> <property> <name>oozie.service.JPAService.jdbc.username</name> <value>oozie</value> </property> <property> <name>oozie.service.JPAService.jdbc.password</name> <value>oozie</value> </property> <property> <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> <value>*=/opt/hadoop/etc/hadoop</value> </property> <!-- 下面两个配置是hue用到的--> <property> <name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name> <value>*</value> </property> <property> <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name> <value>*</value> </property>
确保mysql中oozie用户有创建数据库的权限,如果不放心,我们可以先创建出来:
create database oozie; grant all privileges on oozie.* to oozie@'%' identified by 'oozie'; FLUSH PRIVILEGES;
上面的配置中,指定了hadoop配置文件位置:*=/opt/hadoop/etc/hadoop
,这里的*=
不能少,你根据实际情况修改你的hadoop路径即可。
上面的步骤完成后,就可以生产server的war包了:
bin/oozie-setup.sh prepare-war
当看到
INFO: Oozie is ready to be started 证明执行成功
在oozie启动之前我们还需要把下面的命令执行以下。
bin/oozie-setup.sh sharelib create -fs hdfs://<namenode-hostname>:8020
将hadoop的jar包上传到hdfs上。
在开启server之前我们要对core-site.xml做以下修改。
<property> <name>hadoop.proxyuser.oozie.hosts</name> <value>*</value> </property> <property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>*</value>
</property>
上面的这两个配置是对hadoop的伪装功能,执行以下命令,可以不用重启hadoop集群
hdfs dfsadmin -refreshSuperUserGroupsConfiguration yarn rmadmin –refreshSuperUserGroupsConfiguration
最后启动
bin/oozied.sh start 如果看到下图,说明oozie安装成功,恭喜。