Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce任务工作流(包括M/R、Pig、Hive、Sqoop等)
工作流管理软件有Azkaban、Oozie、Cascading、Hamake等多种引擎可选。
1.下载网站: http://oozie.apache.org
下载版本是oozie4.3.1.tar.gz
2.解压
tar -zxvf oozie-4.3.1.tar.gz
3.编译
检查并修改 pox.xml中各依赖软件版本,根据需要修改版本号,开始没有做任何修改 ,但后来安装好后运行项目总提示错误,后来修改把hadoop.version等版本修改为与已安装环境匹配的版本,就能顺利运行oozie测试项目。
bin/mkdistro.sh -Dhadoop.version=2.6.0 -DskipTests
提示 no svn in(...)
no git in(...)
分别先安装
yum install svn
yum install git
再次运行编译提示
bin/mkdistro.sh:行71: mvn: 未找到命令
需要安装maven
yum install maven
再运行编译命令,终于成功
4. 部署编译的文件
把原来的源文件目录改名:
mv oozie-4.3.1 oozie-4.3.1-src
复制编译好的文件包:
cp oozie-4.3.1-src/distro/target/oozie-4.3.1-distro.tar.gz ./
解压文件包:
tar -zxvf oozie-4.3.1-distro.tar.gz
删除文件包:
rm oozie-4.3.1-distro.tar.gz
5.修改oozie配置文件oozie-site.xml
nano oozie-4.3.1/conf/oozie-site.xml 全文如下:
<configuration>
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://centos7: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>123</value>
</property>
<property>
<name>oozie.home.dir</name>
<value>*=/home/linbin/software/oozie-4.3.1</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/home/linbin/software/hadoop-2.6.0-cdh5.16.0/etc/hadoop</value>
</property>
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>hdfs://centos7:8020/user/root/oozie/share/lib</value>
</property>
<property>
<name>oozie.service.SparkConfigurationService.spark.configurations</name>
<value>*=/home/linbin/software/spark-1.6.0-cdh5.16.0/conf</value>
</property>
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/root/oozie/share/lib</value>
</property>
<property>
<name>oozie.use.system.libpath</name>
<value>true</value>
</property>
</configuration>
6. 修改oozie配置文件oozie-env.sh
nano oozie-4.3.1/conf/oozie-env.sh 增加如下内容:
export OOZIE_INSTANCE_ID="${OOZIE_HTTP_HOSTNAME}"
export OOZIE_CONF=${OOZIE_HOME}/conf
export OOZIE_DATA=${OOZIE_HOME}/data
export OOZIE_LOG=${OOZIE_HOME}/logs
export CATALINA_BASE=${OOZIE_HOME}/oozie-server
export CATALINA_TMPDIR=${OOZIE_HOME}/oozie-server/temp
export CATALINA_OUT=${OOZIE_LOG}/catalina.out
7.修改hadoop配置文件
hadoop2.6.0-cdh5.16.0/etc/hadoop/core-site.xml 加入如下内容:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
其中root是用户名,如果其它用户身份运行,修改为对应的用户名
8.修改环境变量 etc/profile
export OOZIE_HOME=/home/linbin/software/oozie-4.3.1
export PATH=$PATH:$OOZIE_HOME/bin
export OOZIE_CONFIG=$OOZIE_HOME/conf
export OOZIE_URL=http://centos7:11000/oozie
source /etc/profile
9.启动hdfs,创建oozie目录
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
hadoop fs -mkdir /user/root/oozie
10.创建oozie数据库
mysql -uroot -p
11. 解压
[root@centos7 oozie-4.3.1]# tar -zxvf oozie-sharelib-4.3.1.tar.gz
12.上传解压文件到hdfs
[root@centos7 oozie-4.3.1]# hdfs dfs -put ./share /user/root/oozie/
13. 把相关web运行需要的jar包打包
wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
收集需要打包文件:
cd oozie-4.3.1
mkdir libext
cp ../hadoop-2.6.0-cdh5.16.0/share/hadoop/*/*.jar libext/
cp ../hadoop-2.6.0-cdh5.16.0/share/hadoop/*/lib/*.jar libext/
cp /home/linbin/下载/ext-2.2.zip libext/
cp /home/linbin/下载/mysql-connector-java-8.0.11.jar libext/
14,在mysql的oozie数据库创建相关表
ooziedb.sh create -sqlfile oozie.sql -run
15.把libext 加入oozie.war
bin/oozie-setup.sh prepare-war
注: 这个新生成的oozie.war 会自动同步到 $SQOOP_HOME/server/webapps 目录下
因此,如果oozie配置有问题,不但oozie不能启动,sqoop也不能启动,删除$SQOOP_HOME/server/webapps/oozie.war后 sqoop可以启动,oozie还是不能启动
如果oozie调试通过,则oozie和sqoop都能正常使用
但是,另外一台电脑同样运行setup,却提示oozie.war打包到 oozie-4.3.1/oozie-server/webapps/oozie.war,有时间再研究为什么。
16.启动,测试
bin/oozied.sh start
浏览器测试 http://centos7:11000/oozie
17. 运行测试例子
在oozie-4.3.1 目录下有examples例子,在apps目录下,有多个例子可以测试运行
hadoop fs -put ./examples /user/root
修改要运行的例子的 job.properties
如apps/pig/job.properties
nameNode=hdfs://centos7:8020
jobTracker=localhost:8032
queueName=default
examplesRoot=examples
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/pig
运行:oozie job -oozie http://centos7:11000/oozie -config ./examples/apps/pig/job.properties -run
查看结果:oozie job -oozie http://centos7:11000/oozie -info 0000000-181220234426291-oozie-root-W
-info后面是运行作业的id号
Actions
------------------------------------------------------------------------------------------------------------------------------------
ID Status Ext ID Ext Status Err Code
------------------------------------------------------------------------------------------------------------------------------------
0000000-181220234426291-oozie-root-W@:start: OK - OK -
------------------------------------------------------------------------------------------------------------------------------------
0000000-181220234426291-oozie-root-W@pig-node OK job_1545297851825_0004 SUCCEEDED -
------------------------------------------------------------------------------------------------------------------------------------
0000000-181220234426291-oozie-root-W@end OK - OK -
------------------------------------------------------------------------------------------------------------------------------------
要注意hadoop2.0以后例子中的 Job.properties 里Jobstacker=localhost:8032 这是yarn的端口,不再采用hadoop1.X的8021端口。
运行测试例子参考:https://blog.youkuaiyun.com/u014729236/article/details/47188631/