oozie-4.2.0搭建与使用(结合hadoop-2.7.2,spark-2.2.0)
以下是步骤:
编译好的oozie链接:https://download.****.net/download/u013205089/11644697
1.将编译好的oozie-4.2.0-distro.tar.gz解压到/opt下
2、修改/opt/oozie-4.2.0/conf下的 oozie-site.xml文件,在oozie-site.xml中增加以下配置信息:
<property>
<name>oozie.service.JPAService.create.db.schema</name>
<value>true</value>
</property>
<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://master:3306/oozie?createDatabaseIfNotExist=true</value> #master是当前服务器的hostname
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>root</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>111111</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/opt1/hadoop-2.7.2/etc/hadoop</value>
</property>
<property>
<name>oozie.service.SparkConfigurationService.spark.configurations</name>
<value>*=/opt1/spark-2.2.0/conf</value>
</property>
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>hdfs:/user/${user.name}/share/lib</value>
</property>
<property>
<name>oozie.use.system.libpath</name>
<value>true</value>
</property>
<property>
<name>oozie.subworkflow.classpath.inheritance</name>
<value>true</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.supported.filesystems</name>
<value>hdfs,hftp,webhdfs</value>
</property>
</configuration>
3、在Hadoop配置文件的core-site.xml中增加如下配置信息。注意:修改完后,需要重启hadoop。
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
4.
a. 在/opt/oozie-4.2.0目录下创建一个libext目录,
mkdir /opt/oozie-4.2.0/libext
b. 将hadoop里面的包复制到libext文件夹中:
cp /opt/hadoop-2.7.12/share/hadoop/*/lib/*.jar libext/
cp /opt/hadoop-2.7.2/share/hadoop/*/*.jar libext/
c. 将提供的“其他依赖”里面提到的包拷贝进来
cp ../mysql-connector-java-5.x.x.jar libext/ (MySQL驱动包)
cp ../ext-2.2.zip libext/ (Oozie客户端的插件)
d. 然后把libext 里面一系列和hadoop冲突的包丢掉:
cd libext
mv servlet-api-2.5.jar servlet-api-2.5.jar.bak
mv jsp-api-2.1.jar jsp-api-2.1.jar.bak
mv jasper-compiler-5.5.23.jar jasper-compiler-5.5.23.jar.bak
mv jasper-runtime-5.5.23.jar jasper-runtime-5.5.23.jar.bak
mv slf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bak
5. 打包oozie.war
在/opt/oozie-4.2.0 下执行:
./bin/oozie-setup.sh prepare-war
6.修改oozie-env.sh
vim conf/oozie-env.sh
添加:
export JAVA_HOME=/opt1/jdk1.8.0_201
export OOZIE_PREFIX=/opt1/oozie-4.2.0
export OOZIE_CONF_DIR=/opt1/oozie-4.2.0/conf/
export OOZIE_HOME=/opt1/oozie-4.2.0
export HADOOP_CONF_DIR=/opt1/hadoop-2.7.2/etc/hadoop
export CLASSPATH=$CLASSPATH:$OOZIE_HOME/libext/*.jar
7.mysql建表
在/opt/oozie-4.2.0 下执行:
./bin/ooziedb.sh create -sqlfile oozie.sql -run
(如果报错的话,需要手动进入mysql,删除表,再执行一下)
8. 安装oozie-sharelib。
1) 在oozie-4.2.0目录下有一个 oozie-sharelib-4.2.0.tar.gz。使用tar -zxvf oozie-sharelib-4.2.0.tar.gz将它解压。解压出后是一个share目录
2)上传到hdfs文件系统
hadoop fs –copyFromLocal share /user/root
(这边如果当前登录的是非root用户,比方test,则上传到/user/test 下)
9. 启动jobhistory并查看所有进程
在hadoop-x.x.x 下执行
./sbin/mr-jobhistory-daemon.sh start historyserver, 启动jobhistory进程,oozie调度任务需要进行利用.
10.启动oozie
/opt/oozie-4.2.0/bin/oozied.sh start
11.启动完成后,查看状态:
在oozie-4.2.0 目录下:
./bin/oozie admin -oozie http://master:11000/oozie -status
12.浏览器访问:
http://xx.xx.xx.xx(服务器ip):11000/oozie
13.oozie client安装
Oozie server 安装中已经包括了Oozie client。如果想要在其他机子上也使用Oozie,那么只要在那些机子上安装Oozei的client即可。
在oozie-4.2.0 目录下找到oozie-client-4.2.0.tar.gz,将它复制到需要安装oozie client的机子上,解压后,就可以直接用oozie来操作了。
tar zxvf oozie-client-4.2.0.tar.gz -C /opt
14.运行oozie自带实例:map-reduce
在oozie-4.2.0 目录下找到oozie-examples.tar.gz ,
执行:tar -xvf oozie-examples.tar.gz,目录下增加example目录。
打开目录:cd examples/apps/map-reduce,修改job.properties文件:
vim properties
修改
nameNode=hdfs://xx.xx.xx.xx(hdfs名称)
jobTracker=master:8032
queueName=default
examplesRoot=examples
oozie.wf.application.path=hdfs://xx.xx.xx.xx:xx/user/${user.name}/${examplesRoot}/apps/map-reduce/workflow.xml
outputDir=map-reduce
15. 将examples这个文件上传到hdfs中的/user/${user.name} 中,采用的是root这个用户,就是/user/root
16.执行命令:
./bin/oozie job -oozie http://13.10.20.12:11000/oozie -config job.properties –run
查看状态:
./bin/oozie job -oozie http://xx.xx.xx.xx:11000/oozie -config job.properties -info 0000003-190705110145946-oozie-root-W
网页显示: