什么是工作流:
工作流就是预先定义好的工作流程模型。它描述如何将前后工作工作节点组织在一起的逻辑和规则。工作流解决的主要问题有:实现多个业务目标:多个参与者或者工作节点,利用计算机,按照定义规则自动传递。
什么是oozie:
一个hadoop生态圈的工作流引擎,管理大部分hadoop生态圈服务任务的工作流。
oozie安装和配置:
(1)安装Maven
(2)对Oozie进行编译
(3)配置MySQL数据库
(4)配置Oozie
Oozie的Demo演示
(1)需要启动Hadoop的historyserver:
mr-jobhistory-daemon.sh start historyserver
(2)安装Example:参考讲义
(3)Oozie的一个工作流:核心配置文件
(*)job.properites:配置Hadoop的HDFS和Yarn的地址,指定工作流定义文件(workflow.xml)
nameNode=hdfs://hadoop111:9000
jobTracker=hadoop111:8032
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce/workflow.xml
outputDir=map-reduce
(*)workflow.xml:定义工作流
(*)oozie执行工作流的时候的日志信息
(4)重要*******(坑)
1、自带:使用MapReduce旧API
(*)实现的接口
2、现在的MR都是使用新API
(*)继承的是抽象类
定义oozie节点:
1> 控制节点
开始节点、start
结束节点 end
决策节点(decision)
停止控制节点 (kill)
分支-联接节点 (fork)
(*)使用自带:Shell例子 ---> 可以加入一些控制元素
(*)下载本地
2> 执行节点 action
java action
mapreduce action
fs action
sqoop action
hive action
pig action
oozie的bundle和coordinator:
更高一层的工作流定义: