大数据技术之_14_Oozie学习
第1章 Oozie 的简介
Oozie 英文翻译为:驯象人。一个
基于工作流引擎
的开源框架,由 Cloudera 公司贡献给 Apache,提供对 Hadoop MapReduce、Pig Jobs 的任务调度与协调。Oozie 需要部署到 Java Servlet 容器中运行
。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。
第2章 Oozie 的功能模块介绍
2.1 模块
- Workflow
顺序执行流程节点,支持 fork(分支多个节点),join(合并多个节点为一个)。 - Coordinator
定时触发 Workflow。 - Bundle Job
绑定多个 Coordinator。
2.2 常用节点
- 控制流节点(Control Flow Nodes)
控制流节点一般都是定义在工作流开始或者结束的位置,比如:start、end、kill 等。以及提供工作流的执行路径机制,比如:decision、fork、join 等。 - 动作节点(Action Nodes)
负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。
第3章 Oozie 的部署
3.1 部署 Hadoop(CDH版本的)
3.1.1 解压缩 CDH 版本的 hadoop
先将
hadoop-2.5.0-cdh5.3.6.tar.gz
oozie-4.0.0-cdh5.3.6.tar.gz
ext-2.2.zip
cdh5.3.6-snappy-lib-natirve.tar.gz
拷贝至 Linux 的 /opt/software目录下
解压 CDH 版本的 hadoop 至 /opt/module/cdh 目录下
解压 oozie 至 /opt/module/ 目录下
[atguigu@hadoop102 software]$ tar -zxf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/module/cdh/
[atguigu@hadoop102 software]$ tar -zxf oozie-4.0.0-cdh5.3.6.tar.gz -C /opt/module/
3.1.2 修改 CDH 版本的 Hadoop 配置
详情如下:
[atguigu@hadoop102 hadoop]$ vim hadoop-env.sh
[atguigu@hadoop102 hadoop]$ vim mapred-env.sh
[atguigu@hadoop102 hadoop]$ vim yarn-env.sh
这三个文件都增加JAVA_HOME
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
</property>
<!-- Oozie Server的Hostname -->
<property>
<name>hadoop.proxyuser.atguigu.hosts</name>
<value>*</value>
</property>
<!-- 允许被Oozie代理的用户组 -->
<property>
<name>hadoop.proxyuser.atguigu.groups</name>
<value>*</value>
</property>
hdfs-site.xml
<!-- 指定HDFS副本的数量,默认是3个,学习阶段设置为1个 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!-- 指定yarn在启动的时候的内存大小 -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048&l