先决条件
本文演示了在Hadoop 2.7.3上安装oozie-4.3.0
Java 1.7以上
Hadoop 2.x(此处为2.7.3)
Maven3 +
Unix盒子
步骤1:Dist文件
tar.gz从http://www-eu.apache.org/dist/oozie/4.3.0/获取oozie文件并解压缩
cd $HOME tar -xvf oozie-4.3.0.tar.gz
步骤2:建立Oozie
cd $HOME/oozie-4.3.0/bin ./mkdistro.sh -DskipTests
第三步:服务器安装
将生成的二进制文件作为“ oozie”复制到主目录
cd $HOME cp -R $HOME/oozie-4.3.0/distro/target/oozie-4.3.0-distro/oozie-4.3.0 .
步骤3.1:libext在oozie目录中创建libext目录
cd $HOME/oozie mkdir libext
注意:ExtJS(2.2+)库(可选,以启用Oozie Webconsole)但是,ExtJS库未与Oozie捆绑在一起,因为它使用了不同的许可证:oozie.log文件错误
WARN ActionStartXCommand:523-服务器[data01.teg.io]用户[hadoop]组[-]令牌[] APP [map-reduce-wf]作业[0000000-161215143751620-oozie-hado-W]动作[0000000-161215143751620- oozie-hado-W @ mr-node]错误的开始操作[mr-node]。ErrorType [TRANSIENT],ErrorCode [JA009],消息[JA009:无法初始化群集。请检查您的配置是否包含mapreduce.framework.name和相应的服务器地址。]
因此,我们将其放在libext目录中的jars下面
cp $HADOOP_HOME/share/hadoop/common/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/common/lib/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/hdfs/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/mapreduce/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/mapreduce/lib/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/yarn/*.jar oozie/libext/ cp $HADOOP_HOME/share/hadoop/yarn/lib/*.jar oozie/libext/
步骤3.2:Oozie模拟为了避免在Oozie上模拟错误,请如下所示修改core-site.xml。
<!-- OOZIE --> <property> <name>hadoop.proxyuser.[OOZIE_SERVER_USER].hosts</name> <value>[OOZIE_SERVER_HOSTNAME]</value> </property> <property> <name>hadoop.proxyuser.[OOZIE_SERVER_USER].groups</name> <value>[USER_GROUPS_THAT_ALLOW_IMPERSONATION]</value> </property>
假设,我的oozie用户是huser,主机是localhost,组是hadoop
<!-- OOZIE --> <property> <name>hadoop.proxyuser.huser.hosts</name> <value>localhost</value> </property> <property> <name>hadoop.proxyuser.huser.groups</name> <value>hadoop</value> </property>
注意:如果有混淆,可以在所有值中使用*
步骤3.3:准备战争
cd $HOME/oozie/bin ./oozie-setup.sh prepare-war
这将oozie.war在oozie目录中创建文件。如果进一步使用这种战争,您可能会遇到此错误:
错误ActionStartXCommand:517-服务器[data01.teg.io]用户[hadoop]组[-]令牌[] APP [map-reduce-wf]作业[0000000-161220104605103-oozie-hado-W]动作[0000000-161220104605105103- oozie-hado-W @ mr-node]错误,java.lang.NoSuchFieldError:HADOOP_CLASSPATH
为什么?因为,即使使用选项“ -Dhadoop.version = 2.7.3”指定Hadoop 2.7.3时,oozie编译仍会生成Hadoop 2.6.0 jar。
因此,为避免此错误,请将oozie.war文件复制到其他目录
mkdir $HOME/oozie_war_dir cp $HOME/oozie/oozie.war $HOME/oozie_war_dir cd $HOME/oozie_war_dir jar -xvf oozie.war rm -f oozie.war/WEB-INF/lib/hadoop-*.jar rm -f oozie.war/WEB-INF/lib/hive-*.jar rm oozie.war jar -cvfoozie.war./* cpoozie.war$HOME/oozie/
然后,oozie.war通过准备战争为oozie生成二进制文件
cd $HOME/oozie/bin ./oozie-setup.sh prepare-war
步骤3.4:在HDFS上创建sharelib
cd $HOME/oozie/bin ./oozie-setup.sh sharelib create -fs hdfs://localhost:9000
现在,此共享库设置可能会给您以下错误:
org.apache.oozie.service.ServiceException:E0104:无法完全初始化服务[org.apache.oozie.service.ShareLibService],无法缓存sharelib。管理员需要使用oozie-setup.sh安装sharelib并发出'oozie admin'CLI命令来更新sharelib
为避免这种情况,请如下修改oozie-site.xml
cd $HOME/oozie vi conf/oozie-site.xml
在下面添加属性
<property> <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> <value>*=/usr/local/hadoop/etc/hadoop/</value> </property>
该值应为$HADOOP_HOME / etc / hadoop,其中包含所有hadoop配置文件。
步骤3.5:创建Oozie DB
cd $HOME/oozie ./bin/ooziedb.sh create -sqlfileoozie.sql-run
步骤3.6:启动守护程序
要将Oozie作为守护程序启动,请使用以下命令:
./bin/oozied.sh start
停止
./bin/oozied.sh stop
检查日志中是否有错误(如果有)
cd $HOME/oozie/logs tail -100f oozie.log
使用以下命令从命令行检查Oozie的状态:
$ ./bin/oozie admin -oozie http://localhost:11000/oozie -status System mode: NORMAL
步骤4:客户端安装
$ cd $ cp oozie/oozie-client-4.3.0.tar.gz . $ tar -xvf oozie-client-4.3.0.tar.gz $ mv oozie-client-3.3.2 oozie-client $ cd bin
将$HOME / oozie-client / bin添加到.bashrc文件中的PATH变量中,然后重新启动终端或执行
source $HOME/.bashrc
有关设置的更多详细信息,您可以参考以下URL https://oozie.apache.org/docs/4.3.0/DG_QuickStart.html
现在,您可以在终端中将hadoop作业提交给oozie。
要运行示例,可以遵循此URL并设置第一个示例以运行https://oozie.apache.org/docs/4.3.0/DG_Examples.html
在上述网址中运行映射缩小示例时,您可能会遇到以下错误
java.io.IOException:java.net.ConnectException:在发生连接异常时从localhost.localdomain / 127.0.0.1调用到0.0.0.0:10020失败:java.net.ConnectException:连接被拒绝;有关更多详细信息,请参见:http://wiki.apache.org/hadoop/ConnectionRefused
解决方案:启动mr-jobhistory-server.sh
cd $HADOOP_HOME/sbin ./mr-jobhistory-server.sh start historyserver
关于修改job.properties文件要注意的另一点是:
nameNode=hdfs://localhost:9000 jobTracker=localhost:8032
在您的情况下,这可能会有所不同,因为我正在使用apache hadoop,您可能正在使用cloudera / hdp /任何东西
To run spark job, I have tried running in local[*], yarn-client and yarn-cluster as master, but succeeded in local[*] only