oozie安装以及定时调度总结

一、前提

安装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.查看页面

http://hadoop102:11000/oozie

至此部署完成

三、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

http://hadoop102:11000/oozie

谢谢观看!

猜你喜欢

转载自blog.csdn.net/qq_30889993/article/details/89641639