安装或设置
先决条件
本文演示了如何在 Hadoop 2.7.3 上安装 oozie-4.3.0
- Java 1.7+
- Hadoop 2.x(这里,2.7.3)
- Maven3 +
- Unix 盒子
第 1 步:Dist 文件
从 http://www-eu.apache.org/dist/oozie/4.3.0/ 获取 oozie tar.gz 文件并解压缩
cd $HOME
tar -xvf oozie-4.3.0.tar.gz
第 2 步:构建 Oozie
cd $HOME/oozie-4.3.0/bin
./mkdistro.sh -DskipTests
第 3 步:服务器安装
将构建的二进制文件复制到主目录为’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 绑定,因为它使用不同的许可证:(现在你需要将 hadoop jar 放在 libext 目录中,否则它将在下面抛出 oozie.log 文件中的错误
WARN ActionStartXCommand:523 - SERVER [data01.teg.io] USER [hadoop] GROUP [ - ] TOKEN [] APP [map-reduce-wf] JOB [0000000-161215143751620-oozie-hado-W]行动[0000000-161215143751620- oozie-hado-W @ mr-node]启动动作[mr-node]时出错。ErrorType [TRANSIENT],ErrorCode [JA009],消息[JA009:无法初始化群集。请检查 mapreduce.framework.name 的配置和相应的服务器地址。
所以,让我们把它放在 libext 目录下的 jar 下面
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 Impersonate 要避免在 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,group 是 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 目录中创建 oozie.war 文件。如果将进一步使用此战争,你可能会遇到此错误:
ERROR ActionStartXCommand:517 - SERVER [data01.teg.io] USER [hadoop] GROUP [ - ] TOKEN [] APP [map-reduce-wf] JOB [0000000-161220104605103-oozie-hado-W]行动[0000000-161220104605103- 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 -cvf oozie.war ./*
cp oozie.war $HOME/oozie/
然后,通过准备战争为 oozie 重新生成 oozie.war 二进制文件
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
现在,这个 sharelib 设置可能会给你以下错误:
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 -sqlfile oozie.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
现在,你可以在终端中向 oozie 提交 hadoop 作业。
要运行示例,你可以按照此 URL 并设置第一个示例来运行 https://oozie.apache.org/docs/4.3.0/DG_Examples.html
在上面的 URL 中运行 map reduce 示例时,你可能会遇到以下错误
java.io.IOException:java.net.ConnectException:在连接异常时调用从 localhost.localdomain / 127.0.0.1 到 0.0.0.0:10020 失败:java.net.ConnectException:Connection refused; 有关更多详细信息,请参阅: 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 / anything
To run spark job, I have tried running in local[*], yarn-client and
yarn-cluster as master, but succeeded in local[*] only