Oozie_初识
Oozie 任务调度框架(基于工作流)
oozie运行于hadoop集群,对hive,mr,flume,Soop,spark,shell等框架进行任务流调度
如: job1-->job2 & job3-->job4 & job5...
其中,job1用于采集数据,job2与job3用于数据清洗,job4,job5,jobn等用于数据分析
对MR和pigJobs任务调度与协调,需要用到servlet容器(自身框架封装了TomcatHTTPServer)
简单来说,该框架实现任务的自动化,各个处理部分不需要人为控制
PS:oozie如果其中一个job处理失败,不会有回滚,其处理的方式是直接停止
任务调度框架
1. crontab(最简单的任务调度框架)
格式: *(分) *(时) *(日) *(月) *(周) command
1-6:连续的时间
1,6:不连续的时间
*/1:每小时
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
例
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab
2. Azkaban
linkdin:开源任务调度框架
properties文件控制工作流
3. Oozie
Xml文件控制工作流
大致工作流
start -> job1 -> job2 & job3 -> ... --> ok > end
--> faile -> kill
4. Zeus
宙斯是一个完整的Hadoop作业平台,支持
Hadoop MR任务的调试运行
Hive任务的调试运行
Shell人数的运行
Hive元数据的可视化查询数据与预览
Hadoopr任务的自动调度
PS:三者各有各的优点,但从使用角度来看oozie较流行,原因之一是hue框架能整合Hadoop所有框架,且界面友好,功能强大
Oozie三大功能
workflow jobs(简单的任务流)
coordinator jobs(加入定时调度:起始时间,结束时间,频率)
Bundle(多个coordinator jobs或这多个workflow的集合)
Oozie的架构
控制流节点 action
起始,结束,并发,分支,合并
动作节点 action
job: mapreduce action
job: hive action
job: shell action
子节点
实现
oozie server
hadoop集群
自带数据库 derby
Oozie安装部署
下载相应与Hadoop版本的oozie.tar.gz与ext-x.x.zip
上传至linux
安装oozieser
配置hadoop代理core-site.xml
hadoop.proxyuser.[OOZIE_SERVER_USER].hosts--[OOZIE_SERVER_HOSTNAME]
hadoop.proxyuser.[OOZIE_SERVER_USER].groups--[USER_GROUPS_THAT_ALLOW_IMPERSONATION]
重启Hadoop集群
当前目录解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz
oozie目录下多出一个oozie-4.0.0-cdh5.3.6文件夹(存放hadoop1与hadoop2的相关jar包)
创建libext文件夹
将hadoop对应版本的jar包放入
将ext-x.x.zip也放入libext文件夹内
创建sharelib库(HDFS上的jar库,用于运行所有job依赖)
$ bin/oozie-setup.sh sharelib create -fs <FS_URI> [-locallib <PATH>]
$ bin/oozie-setup.sh sharelib create -fs hdfs://hadoop09-linux-01.ibeifeng.com:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
打包libext目录的jar包作为oozie运行的jar包库
$ bin/oozie-setup.sh prepare-war [-d directory] [-secure]
$ bin/oozie-setup.sh prepare-war
初始化数据库
$ bin/ooziedb.sh create -sqlfile oozie.sql -run DB Connection
简单配置两个属性
oozie-default.xml
org.apache.oozie.service.JobsConcurrencyService移至第一行
if not oozie的后台目录中会报NullPointerException错误
oozie-site.xml
oozie.service.HadoopAccessorService.hadoop.configurations=*=/opt/cdh-5.6.3/hadoop-2.5.0-cdh5.3.6/etc/hadoop
if not 会报/user/Hadoop/share/lib文件找不到错误
启动oozie
$ bin/oozied.sh start (jps,进程多出一个BootStrap)
Oozie_初识的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
随机推荐
- Python之mmap内存映射模块(大文本处理)说明
背景: 通常在UNIX下面处理文本文件的方法是sed.awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力.关于sed的说明可以看了解sed的工作原理,本文将介绍通过 ...
- 得静下心来看python了。
陆陆续续看了些python爬虫的相关知识.今天找到了这篇博客不错就看这个,明天看到那个又很好又跑去看那个. 来来回回耽误不少时间.接下来不能再这样了,老老实实就看xlzd.me博客和Python实战: ...
- 鼠标划过用户名时在鼠标右下角显示div展示用户资料
最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示div展示用户资料这个效果, 这里要注意的该方法不是给每个用户名的旁边都绑定一个d ...
- Eclipce结合Ant进行编译、打包、传输、运行
注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...
- 关于settimeout 和for循环
for(var i=0;i<3;i++){ setTimeOut(function(){ console.log(i) },500) }; 执行结果:3,3,3 ---------------- ...
- <css系列>之css--float总结
一.float的历史 float的设计初衷是实现文字环绕效果. 如下图,对图片添加float,文字实现环绕效果. 二.float特性 1.包裹性,表现:收缩.坚挺.隔绝.具有包裹性的属 ...
- QT插件使用
1基本插件制作流程 1) 定义接口.接口定义为抽象基类,如IPluginInterface,实现高度封装.定义的头文件在最后需要通过Q_DECLARE_INTERFACE来唯一标识该接口,即通过一个全 ...
- c#_图表之zeGraph
关于图表控件: http://blog.csdn.net/sgear/article/details/1449025 其中zedGraph的基本方法及属性介绍: http://wenku.baidu. ...
- 3小时搞定一个简单的MIS系统案例Northwind,有视频、有源代码下载、有真相
一.瞎扯框架.架构 楼主自从1998年从C语言.MASM.Foxbase开始学计算机开始接触这个行当16年以来,2001年干第一份与程序.软件.然后是各种屌的东西开始,差不多干了13年了,这13年来, ...
- trigger() --工作中问题nav样式
自动执行某元素的某个事件 $("#div").trigger("click"); //让系统自动执行单击事件 适用于nav样式中,下面横线绝对定位于nav.o ...