一、准备工作
1、安装 oracle jdk 1.8.0
过程略。
2、安装 apache maven 3.6.0
过程略。
3、安装 hadoop 2.7.6
过程略。
二、oozie编译
1、版本
oozie:5.1.0
hadoop:2.7.6
hive:2.3.4
sqoop:1.4.7
hbase:1.2.9
2、oozie下载、环境变量设置
下载:wget http://archive.apache.org/dist/oozie/5.1.0/oozie-5.1.0.tar.gz
设置环境变量:
export OOZIE_HOME=/usr/local/oozie-5.1.0
export PATH=$PATH:$OOZIE_HOME/bin
3、修改pom.xml
<hadoop.version>2.7.6</hadoop.version>
<hadoop.majorversion>2</hadoop.majorversion>
<hadooplib.version>hadoop-${hadoop.majorversion}-${project.version}</hadooplib.version>
<hbase.version>1.2.9</hbase.version>
<!-- Sharelib component versions -->
<hive.version>2.3.4</hive.version>
<hive.jline.version>2.12</hive.jline.version>
<hive.classifier>core</hive.classifier>
<sqoop.version>1.4.7</sqoop.version>
4、编译
执行命令编译:
${OOZIE_HOME}/bin/mkdistro.sh -DskipTests -Puber -Phadoop-2 -Dhadoop.version=2.7.6 -Dhadoop.auth.version=2.7.6 -Ddistcp.version=2.7.6 -Dsqoop.version=1.4.7 -Dsqoop.classifier=hadoop260 -Dhive.version=2.3.4 -Dhbase.version=1.2.9 -Djetty.version=9.4.12.v20180830 -Dopenjpa.version=2.4.3 -Dxerces.version=2.12.0
编译过程中可能会出现以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project oozie-core: Compilation failure: Compilation failure:
解决方法,pom.xml增加:
<build>
<plugin>
... ...
</plugin>
<testSourceDirectory>/core/src/test/java</testSourceDirectory>
</build>
ERROR] Failed to execute goal on project oozie-sharelib-sqoop: Could not resolve dependencies for project org.apache.oozie:oozie-sharelib-sqoop:jar:5.1.0: Could not find artifact org.apache.sqoop:sqoop:jar:${sqoop.classifier}:1.4.7 in central (http://central.maven.org/maven2/) -> [Help 1]
解决方法,pom.xml修改:
<sqoop.classifier>hadoop260</sqoop.classifier>
三、安装oozie server
1、将编译好的文件放入/usr/local/oozie-5.1.0/
cp distro/target/oozie-5.1.0-distro.tar.gz /home/
cd ..
mv oozie-5.1.0 oozie-5.1.0-bak
tar -zxvf /home/oozie-5.1.0-distro.tar.gz -C /usr/local/
2、修改oozie-site.xml
<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</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>root</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/usr/local/hadoop-2.7.6/etc/hadoop/</value>
</property>
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>hdfs://localhost:9000/user/${user.name}/share/lib</value>
</property>
3、在hadoop的配置文件core-site.xml中追加配置oozie代理用户
hadoop.proxyuser.root.hosts
root
hadoop.proxyuser.root.groups
root
需要分发到各节点
4、创建 libext目录,并将下载好的ext-2.2.zip以及mysql驱动包(例如:mysql-connector-java-5.1.47.jar)复制到libext目录下。
cd ${OOZIE_HOME}
mkdir libext
wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
5、解压tar文件
tar -zxvf ./oozie-5.1.0/oozie-sharelib-5.1.0.tar.gz
tar -zxvf oozie-sharelib-5.1.0.tar.gz
tar -zxvf oozie-examples.tar.gz
6、将share上传到hdfs上
./bin/oozie-setup.sh sharelib create -fs hdfs://localhost:9000 -locallib oozie-sharelib-5.1.0.tar.gz
7、将mysql-connector-java-5.1.47.jar 拷贝到${OOZIE_HOME} /lib目录
8、数据库设置
在mysql中创建名为oozie的数据库,并在执行:
bin/ooziedb.sh create -sqlfile oozie.sql -run
9、启动oozie
bin/oozie-start.sh
10、检查oozie状态
oozie admin -oozie http://localhost:11000/oozie -status
四、测试
1、将examples上传服务器
hadoop fs -put ./examples/ hdfs://localhost:9000/user/root/
2、测试shell任务
cd examples/apps/shell
注意:job.properties中nameNode要改成自己的hdfs的namenode地址,resourceManager同理要改成自己yarn resourceManager的地址。
执行任务:oozie job -oozie http://localhost:11000/oozie -config ./job.properties -run
查看任务状态:oozie job -oozie http://localhost:11000/oozie -info 0000000-190411173737717-oozie-root-W
如果logs/中日志文件为空,或者
oozie job -oozie http://localhost:11000/oozie -log 0000000-190411173737717-oozie-root-W
看不到任何日志,可能是jar包冲突,在lib、文件中看下log4j-相关的jar包有2.0版本的,如果有将其删除,然后重启。
好啦,oozie 5.1.0安装完成!