一、前提
安装jdk,hadoop集群,启动start-dfs.sh,start-yarn.sh
所需安装包oozie-4.0.0-cdh5.3.6.tar,ext-2.2,mysql-connector-java-5.1.27-bin.jar,请自行下载
解压oozie-4.0.0-cdh5.3.6.tar.gz安装包到个人需要的目录(所有目录以及hostname请与自己机器名匹配)
二、部署oozie
1.在oozie根目录oozie-4.0.0-cdh5.3.6下解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
[hadoop@hadoop102 oozie-4.0.0-cdh5.3.6]$ tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../
完成后Oozie目录下会出现hadooplibs目录。
2.在Oozie目录下创建libext目录
$ mkdir libext/
3.拷贝需要的jar到libext目录,有三样jar包
1)$ cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/
2)$ cp -a mysql-connector-java-5.1.27-bin.jar ./libext/
3)$ cp -a /opt/software/cdh/ext-2.2.zip libext/
4.修改Oozie配置文件
在oozie-site.xml搜索下面的property.修改name,value,value与自己的配置有关
属性:oozie.service.JPAService.jdbc.driver
属性值:com.mysql.jdbc.Driver
解释:JDBC的驱动
属性:oozie.service.JPAService.jdbc.url
属性值:jdbc:mysql://hadoop102:3306/oozie
解释:oozie所需的数据库地址
属性:oozie.service.JPAService.jdbc.username
属性值:root
解释:数据库用户名
属性:oozie.service.JPAService.jdbc.password
属性值:000000
解释:数据库密码
属性:oozie.service.HadoopAccessorService.hadoop.configurations
属性值:*=/opt/module/CDH/hadoop-2.5.0-cdh5.3.6/etc/hadoop
5.在Mysql中创建Oozie的数据库
进入Mysql并创建oozie数据库:
$ mysql -uroot -p000000
mysql> create database oozie;
6.初始化Oozie
1) 上传Oozie目录下的yarn.tar.gz文件到HDFS:
$ bin/oozie-setup.sh sharelib create -fs hdfs://hadoop102:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
2) 创建oozie.sql文件
$ bin/ooziedb.sh create -sqlfile oozie.sql -run
3) 打包项目,生成war包
$ bin/oozie-setup.sh prepare-war
7.Oozie的启动与关闭
$ bin/oozied.sh start
$ bin/oozied.sh stop
8.查看页面
至此部署完成
三、oozie定时调度使用
案例一、Oozie调度shell脚本
1)解压官方案例模板
[hadoop@hadoop102 oozie-4.0.0-cdh5.3.6]$ tar -zxvf oozie-examples.tar.gz
2)创建工作目录
$ mkdir oozie-apps/
3)拷贝任务模板到oozie-apps/目录
$ cp -r examples/apps/shell/ oozie-apps
4)编写脚本p1.sh
$ vi oozie-apps/shell/p1.sh
#!/bin/bash
/bin/date > /usr/hadoop/p1.log
5)修改job.properties和workflow.xml文件
vim job.properties
#HDFS地址
nameNode=hdfs://hadoop102:8020
#ResourceManager地址
jobTracker=hadoop103:8032
#队列名称
queueName=default
examplesRoot=oozie-apps
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/shell
EXEC=p1.sh
vim workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
<shell xmlns="uri:oozie:shell-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>${EXEC}</exec>
<file>/user/atguigu/oozie-apps/shell/${EXEC}#${EXEC}</file>
<capture-output/>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
6)上传任务配置
$ /usr/hadoop/cdh/hadoop/bin/hadoop fs -put oozie-apps/ /user/hadoop
7)执行任务
$ bin/oozie job -oozie http://hadoop02:11000/oozie -config oozie-apps/shell/job.properties -run
8)查看任务(job)状态是否successed
谢谢观看!