今天,我开始了Oozie的学习。学习了Oozie的介绍、Oozie功能模块介绍、搭建CDH版本的Hadoop、CDH版本的Oozie安装部署、实操案例、总结、Apache Oozie版本编译源码。 总结一下: 1.Oozie简介 Oozie英文翻译为:驯象人。一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop Mapreduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。 2.Oozie的功能模块介绍 1、模块 1)Workflow 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个) 2)Coordinator 定时触发workflow 3)Bundle Job 绑定多个Coordinator 2、常用节点 1)控制流节点(Control Flow Nodes) 控制流节点一般都是定义在工作流开始或者结束的位置,比如start,end,kill等。以及提供工作流的执行路径机制,如decision,fork,join等。 2)动作节点(Action Nodes) 负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。 3.可能遇到的问题总结 1、workflow.xml workflow.xml配置的时候不要忽略file属性。 2、jps查看进程时 注意有没有bootstrap。 3、关闭oozie 如果bin/oozied.sh stop无法关闭,则可以使用kill -9 [pid],之后oozie-server/temp/xxx.pid文件一定要删除。 4、Oozie重新打包时 一定要注意先关闭进程,删除对应文件夹下面的pid文件。 5、配置文件一定要生效 起始标签和结束标签无对应则不生效,配置文件的属性写错了,那么则执行默认的属性。 6、libext下边的jar存放于某个文件夹中,导致share/lib创建不成功。 7、调度任务时,找不到指定的脚本,可能是oozie-site.xml里面的Hadoop配置文件没有关联上。 8、修改Hadoop配置文件,需要重启集群。一定要记得scp到其他节点。 9、JobHistoryServer必须开启,集群要重启的。 10、Mysql配置如果没有生效的话,默认使用derby数据库。 11、在本地修改完成的job配置,必须重新上传到HDFS。 12、将HDFS中上传的oozie配置文件下载下来查看是否有错误。 13、Linux用户名和Hadoop的用户名不一致。 4.Apache Oozie编译源码 概述 oozie 的使用,最好去使用cdh版本,各个框架兼容性好,如果使用apache 版本,需要逛逛apache社区,看看各个框架的版本依赖,最好不要跨版本号依赖,解决兼容性问题是很头疼的问题。 大数据框架中,oozie 是比较复杂的,尤其是部署的时候,编译啊…. 定时调度任务框架有 Azkaban Azkaban部署起来非常简单,是最简单的 crontab 滴滴公司就是用的crontab轻量级 oozie 是最强大的,部署的时候,细节很重要