Hadoop平台上Oozie调度系统的安装配置

NA 2014-04-18

OOZIE是Hadoop平台上的开源调度工具,在项目中使用OOZIE将近一年时间了,OOZIE的安装配置还是挺复杂的。为了使用起来方便顺手,需要进行很多配置。下面整理了一下OOZIE安装配置的步骤,供使用Hadoop和OOZIE的童鞋们参考,也方便自己查看。

相关阅读

hadoopJars="hadoop-ant-1.0.4.jar:hadoop-client-1.0.4.jar:hadoop-core-1.0.4.jar:hadoop-minicluster-1.0.4.jar:hadoop-tools-1.0.4.jar:jackson-core-asl-1.8.8.jar:jackson-mapper-asl-1.8.8.jar:log4j-1.2.15.jar: commons-configuration-1.6.jar"
 
3    拷贝所需依赖
 
因为OOZIE需要将所有的依赖打成War包部署到内置的Tomcat上,所以需要将相应Jar包和ExtJS拷贝至$OOZIE_HOME/libext目录下,包括以下依赖:

4    环境变量设置
 
vi ~/.bash_profile
 
添加
 
export OOZIE_URL=http://localhost:11000/oozie/
 
export OOZIE_HOME=/home/hadoop/oozie-3.3.2
 
 
 
PATH中添加:$OOZIE_HOME/bin
 
5    代理设置
 
如果不进行代理设置的话,提交任务时会遇到类似的报错:
 
hadoop is not allowed to impersonate hadoop
 
翻译过来意思是hadoop不允许模仿hadoop,也就是说hadoop没有代替hadoop提交任务的权限。
 
出现这个问题的原因在于OOZIE本身并不执行任何任务,也不会分发任务至Tasktracker。OOZIE和Hadoop集群唯一的交互是向Jobtracker提交任务,并通过回调URL或轮询的方式获取任务执行情况。
 
我们假定Hadoop集群安装在A账户下,OOZIE安装在某节点的B账户下,该账户属于C用户组。那么代理设置表示如下含义:A账户在该节点拥有代替C用户组提交任务的权限。
 
在core-site.xml中添加
 
        <!-- OOZIE -->
 
        <property>
 
                <name>hadoop.proxyuser.hadoop.hosts</name>
 
                <value>IP</value>
 
        </property>
 
        <property>
 
                <name>hadoop.proxyuser.hadoop.groups</name>
 
                <value>hadoop</value>
 
        </property>
 
在配置项中,hadoop.proxyuser.hadoop.hosts和hadoop.proxyuser.hadoop.groups中的两个hadoop是我们上文提到的账户A,hadoop.proxyuser.hadoop.hosts对应的value需要填写OOZIE安装节点的IP,hadoop.proxyuser.hadoop.groups对应的value需要填写我们上文提到的用户组C。
 
由于一般Hadoop和OOZIE都安装在hadoop账户下,而hadoop账户又属于hadoop用户组。所以就出现了这种搞笑的配置,hadoop代替hadoop提交任务。
 
注意由于该配置项是在core-site.xml,所以修改该配置后,需要重启集群才能生效。
 
6    时区设置
 
时区设置的目的是在配置中使用东八区时间。
 
在oozie-site.xml中添加:
 
  <!-- timezone configuration -->
 
  <property>
 
        <name>oozie.processing.timezone</name>
 
        <value>GMT+0800</value>
 
    </property>
 
7    端口号设置
 
如需修改端口号,在$OOZIE_HOME/conf/oozie-env.sh中修改端口号,防止端口冲突。默认端口号为11000。

相关推荐