有网友碰到这样的问题“大数据组件之oozie”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
官网首页介绍: http://oozie.apache.org
简单项目的话可以用crontab来做控制,但是项目比较复杂的话会发现还是有很多不方便的,比如失败重启和日志查看等问题,所以我们通常在Azkaban和oozie之间做对比,选择适合自己公司或者项目的任务调度工具
Oozie主要有三个层层包裹的主要概念
Oozie的作业有三部分组成,分别是job.properties,workflow.xml,lib文件夹。下面分别介绍
从名称也能看出来,这个文件是用来配置作业(job)中用到的各种参数的,总结如下
注:
1、这个文件如果是在本地通过命令行进行任务提交的话,这个文件在本地就可以了,当然也可以放在hdfs上,与workflow.xml和lib处于同一层级。
2、nameNode,jobTracker和workflow.xml在hdfs中的位置必须设置。
一个简单的job.properties文件如下:
这个文件是定义任务的整体流程的文件,需要注意的有三点:版本信息,EL函数,节点信息。
先上一个例子:
在xmls属性中定义了workflow的版本为0.4,workflow的版本不能高于oozie兼容的最高版本,可以降低。
A. 流程控制节点
案例:
B. 动作节点
Workflow.xml综述
文件需要被放在HDFS上才能被oozie调度,如果在启动需要调动MR任务,jar包同样需要在hdfs上。最终的目录结构如下:
在workflow工作流定义的同级目录下,需要有一个lib目录,在lib目录中存在java节点MapReduce使用的jar包。需要注意的是,oozie并不是使用指定jar包的名称来启动任务的,而是通过制定主类来启动任务的。在lib包中绝对不能存在某个jar包的不同版本,不能够出现多个相同主类。
在搭建好CDH后,可以直接通过添加服务的方式实现oozie的安装,比较方便。当然也可以在服务器上搭建独立的oozie服务,具体可参考 https://oozie.apache.org/docs/5.0.0/AG_Install.html
搭设后进入oozie web控制台,地址为:OozieserverIp:11000/oozie/ (OozieserverIp为oozie所在的服务器的ip地址),界面如下:
1.拷贝官方自带实例模板
2.修改job.properties
3.修改workflow.xml
4.在shell目录下创建mem.sh
注:/usr/bin/date为命令绝对路径,可以通过which date获得
5.上传到hdfs
6.执行:
7.检查结果