Apache Oozie
-
Apache oozie
- 是一个工作流调度软件 本身属于cloudera 后来贡献给了apache
- oozie目的根据一个定义DAG(有向无环图)执行工作流程
- oozie本身的配置是一种xml格式的配置文件 oozie跟hue配合使用将会很方便
- oozie特点:顺序执行 周期重复定时 可视化 追踪结果
-
Apache Oozie
-
Oozie client:主要是提供一种方式给用户进行工作流的提交启动(cli javaapi rest)
-
Oozie server(本身是一个java web应用)
-
Hadoop生态圈
-
oozie各种类型任务提交底层依赖于mr程序 首先启动一个没有reducetak的mr 通过这个mr
把各个不同类型的任务提交到具体的集群上执行
-
-
-
oozie 流程节点
-
oozie 核心配置是在一个workflow.xml文件 文件中顶一个工作流的执行流程规则
-
类型
- control node 控制工作流的执行路径:start end fork join kill
- action node 具体的任务类型:mr spark shell java hive
上述两种类型结合起来 就可以描绘出一个工作流的DAG图。
-
-
oozie工作流类型
- workflow 基本类型的工作流 只会按照定义顺序执行 无定时触发
- coordinator 定时触发任务 当满足执行时间 或者输入数据可用 触发workflow执行
- bundle 批处理任务 一次提交多个coordinator
-
Apache oozie 安装
-
版本问题:Apache官方提供的是源码包 需要自己结合hadoop生态圈软件环境进行编译 兼容性问题特别难以处理 因此可以使用第三方商业公司编译好 Cloudera(CDH)
-
修改hadoop的相关配置 启动服务
- httpfs
- jobhistory
配置修改之后需要重启hadoop集群
-
解压oozie安装包 拷贝相关依赖的软件
-
修改oozie-site.xml 主要是mysql相关信息 hadoop配置文件
-
初始化mysql 创建库表
-
生成执行需要的war包
-
-
oozie 实战
- 解压出官方自带的案例 里面封装了各种类型任务的配置模板
- 优化更新hadoop环境资源配置
- yarn资源相关的 申请资源的上下限 yarn调度策略(fair 多线程执行模式)
- mapreduce申请资源相关的 maptask reducetask申请内存的大小
- scp给其他机器 重启集群 (hadoop ) oozie
-
oozie 调度流程
-
根据官方自带的示例编写配置文件
job.properties workflow.xml
-
把任务配置信息连同依赖的资源一起上传到hdfs指定的路径 这个路径在配置中有
-
利用oozie的命令进行提交
-
-
oozie调度hive脚本
-
首先必须保证hiveserve2服务是启动正常的,如果配置metastore服务,要首先启动metastore
nohup /export/servers/hive/bin/hive --service metastore & nohup /export/servers/hive/bin/hive --service hiveserver2 &
-
-
oozie调度mapreduce程序
- 需要在workflow.xml中开启使用新版的 api hadoop2.x
-
oozie调度串联任务
通过action节点 成功失败控制执行的流程
如果上一个action成功 跳转到下一个action 这样就可以变成首尾相连的串联任务
-
oozie基于时间的定时
主要是需要coordinator来配合workflow进行周期性的触发执行
需要注意时间的格式问题 时区的问题