oozie 安装或设置

示例

先决条件

本文演示了在Hadoop 2.7.3上安装oozie-4.3.0

  1. Java 1.7以上

  2. Hadoop 2.x(此处为2.7.3)

  3. Maven3 +

  4. 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