多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 简介 一个基于工作流引擎的开源框架.需要部署到java servlet容器中 运行.主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度. # 功能模块介绍 ## 模块 **workflow** 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个) **coordinator** 定时器,定时触发workflow **bundle job** 绑定多个coordinator,相当于序列化的map集合 ## 常用节点 **控制流节点(ControlFlow Nodes)** 控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等.以及提供工作流的执行路径机制,如decision,fork,join等 **动作节点(Action Nodes)** 负责执行具体动作的节点.比如:拷贝文件,执行某个shell脚本等 # 安装 **解压** ~~~ tar -zxf oozie-4.0.0-cdh5.3.6.tar.gz ~~~ **修改hadoop配置** oozie是有用户的,默认用户就是oozie core-site.xml ~~~ <!-- Oozie Server的Hostname --> ## 允许哪些框架被oozie 代理用户去操作hadoop,修改成自己的用户名 <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <!-- 允许被Oozie代理的用户组 --> ## 允许oozie 代理用户去操作hadoop,修改成自己的用户名 <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> ~~~ mapred-site.xml ~~~ 使用oozie框架,一定要配置jobhistory server <!-- 配置 MapReduce JobHistory Server 地址,默认端口10020 --> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <!-- 配置 MapReduce JobHistory Server web ui 地址,默认端口19888 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> ~~~ yarn-site.xml ~~~ <!-- 任务历史服务 --> <property> <name>yarn.log.server.url</name> <value>http://hadoop102:19888/jobhistory/logs/</value> </property> ~~~ scp同步到其他机器节点 重启hadoop,顺便开启job history **在oozie根目录下,解压hadooplibs** ~~~ tar -xzvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ./ ~~~ 完成后Oozie目录下会出现oozie-4.0.0-cdh5.3.6目录。目的是把解压后oozie-4.0.0-cdh5.3.6的hadooplibs文件夹,放到oozie目录下 **在Oozie目录下创建libext目录** ~~~ mkdir libext/ ~~~ **拷贝一些依赖的Jar包** 将hadooplibs里面的jar包,拷贝到libext目录下 ~~~ cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/ ~~~ **拷贝Mysql驱动包到libext目录下** oozie 的 元数据保存在mysql 中 ,默认derby ~~~ cp -a mysql-connector-java-5.1.27-bin.jar libext/ ~~~ **修改Oozie配置文件** oozie-site.xml ~~~ vim conf/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://hadoop102: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>000000</value> </property> <property> <name>oozie.service.HadoopAccessorService.hadoop.configurations</name> <value>*=/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value> <description>让Oozie引用Hadoop的配置文件“*=”不能删</description> </property> ~~~ **在Mysql中创建Oozie的数据库** ~~~ create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ~~~ **初始化Oozie** 上传Oozie目录下的yarn.tar.gz文件到HDFS ~~~ bin/oozie-setup.sh sharelib create -fs hdfs://master:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz ~~~