《OD学Oozie》20160807Oozie
一、引入
MapReduce Job
Hive 脚本任务
同一个业务:先后、定时调度
工作流: 定义工作流程
activity
jbpm
oozie: 大数据工作流定义与调度框架
专门定义与调度MapReduce Job工作流程
拓展:shell、hive、sqoop、hdfs
oozie演变过程:
v1 Workflow 工作流定义
v2 Coordinator 调度
基于时间、基于数据集是否可用
v3 bundle 将某些相关的Cordinator集成在一块
调度批量执行
案例:
nginx收集日志,每天进行分割(一天一个文件) ---> shell
每天分割出来的日志文件,上传到hdfs上 ---> shell/flume
mapreduce job数据清洗/ hive udf udts进行数据清洗
hive hsql 进行业务上的统计分析 pv uv 会话
sqoop导出到mysql里面
定义
start
两类节点:
控制流程节点:
decision选择节点
fork
join
顺序
action节点:
MapReduce action
shell
hive
sqoop
Oozie执行workflow:底层是MapReduce去执行Workflow
工作流引擎:MapReduce
启动一个workflow实例,运行工作流中任务,通过Mapreduce来执行
二、安装部署
1. 下载
2. 解压安装
1)
2)tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../
3)创建目录libext
/opt/modules/cdh/oozie-4.0.0-cdh5.3.6/libext
cp /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/*.jar /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/libext/
4)cp /
ext-2.2.zip ---> oozie使用了extjs
ext-2.2.zip copy 到 libext
5)将mysql的驱动包添加到libext
oozie需要有关系型数据库存储工作流运行过程中的状态流转信息
6)修改oozie-site.xml
oozie-env.sh
从CATALINA_OPTS看出,oozie内部使用的tomcat做应用服务器
7)打war包到tomcat中
bin/oozie-setup.sh prepare-war
成功:
New Oozie WAR file with added 'ExtJS library, JARs' at /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/oozie-server/webapps/oozie.war
8)将tar包解压并上传依赖包到hdfs上
bin/oozie-setup.sh sharelib create -fs hdfs://beifeng-hadoop-02:9000 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/${user.name}/share/lib</value>
<description>
System library path to use for workflow applications.
This path is added to workflow application if their job properties sets
the property 'oozie.use.system.libpath' to true.
</description>
9)初始化mysql中的oozie库
bin/oozie-setup.sh db create -run oozie.sql
10)启动oozie
bin/oozied.sh start
netstat -tlnup | grep 11000
11)访问
http://beifeng-hadoop-02:11000/oozie/
三、oozie使用
1. 运行案例
使用oozie来运行 fof 好友推荐 mapredue,首先要确保MapReduce能正常运行。
mapreduce-example.jar findfof bestfof
2. Oozie:工作流程是通过配置文件进行配置
worflow.xml 参考examples里面的皮遏制
oorzie运行workflow是通过MapReduce运行,所以workflow的配置文件需要先放到hdfs上
如何定义工作流并运行工作流(以MapReduce为例):
(1)先在本地文件系统定义好配置
(2)编写两个配置
job.properties workflow.xml
(3)创建lib目录,将mapreduce jar包放进去
job.properties
YANR 的调度器的队列
yarn调度,其实就是讲mr job放到某个queue上运行
队列:
(1)FIFO
(2)Fair公平队列:先尽可能将资源分配给某个Job
比如只有一个job时,拥有所有资源,当有另一个job要执行,则会分出部分资源
(3)容量队列:多个FIFO队列,每个队列有资源占有率
往YARN上提交Job,根据Job的资源要求安排合适队列运行job任务。
3. 将配置上传到hdfs
4. 运行
bin/oozie job -oozie http://beifeng-hadoop-02:11000/oozie -config /opt/datas/oozie-apps/fof-mr/job.properties -run
补充概念:
DAG有向无环图:
Oozie workflow
storm 数据流
spark 本质核心 DAG
<ok to ="">
1)Map Reduce action
2) shell action
Oozie执行具有本地特性的shell脚本:
引子shell脚本
真正要执行的shell脚本,要在哪台服务器上,引子shell脚本就放在哪台服务器上。
password='beifeng'
/usr/bin/expect
切割日志
3) hive action
4)sqoop action
《OD学Oozie》20160807Oozie的更多相关文章
- 《OD学oozie》20160813
一.日志收集项目案例 1. oozie中依赖jar包 在工作目录下创建lib目录,上传依赖包的lib目录下 2. 作业 将日志收集与处理项目案例使用oozie的workflow执行 3. coordi ...
- 《OD学Hive》第六周20160730
一.Hive的JDBC连接 日志分析结果数据,存储在hive中 <property> <name>hive.server2.thrift.port</name> & ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 《OD学hadoop》第二周0703
hdfs可视化界面: http://beifeng-hadoop-01:50070/dfshealth.html#tab-overview yarn可视化界面: http://beifeng-hado ...
- 《OD学hadoop》20160903某旅游网项目实战
一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...
- 《OD学storm》20160827
http://www.cnblogs.com/lujinhong2/p/4686512.html http://blog.csdn.net/paul_wei2008/article/details/2 ...
- 《OD学HBase》20160821
一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...
- 《OD学HBase》20160820
一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...
- 《OD学HBase》20160814
一.HBase引入 http://hbase.apache.org/ 大数据的数据库 1. 概述 Hadoop生态系统中的一个分布式.可拓展.面向列.可伸缩,具有自动容错功能的数据库. NoSQL数据 ...
随机推荐
- Leetcode#172 Fractorial Trailing Zero
原题地址 n!含有多少个因子10,则结尾有多少个0 10=2*5,而2的个数肯定比5多,所以n!含有多少个因子5,则结尾有多少个0 如何计算n!有多少个因子5呢? 比如n=13,则: n! = 13 ...
- 关于“无法定位程序输入点gzdirect于动态链接库zlib1.dll”的问题
费劲N多力气编译通过之后,最后启动程序过程中却突然得到“无法定位程序输入点gzdirect于动态链接库zlib1.dll”的问题, 分析究其原因是定位不到zlib1.dll,都知道,程序在找dll的时 ...
- Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service
实现目标 http://localhost:9000/rs/roomservice 为入口, http://localhost:9000/rs/roomservice/room为房间列表, http: ...
- jquery ajax清除缓存的方法
function cityListChange(cityCode){ //{lon=121.491121, name=上海, province=上海市, telPrefix=021, province ...
- Cortex-M3/4的Hard Fault调试方法
1 Cortex-M3/4的Fault简介 Cortex-M3/4的Fault异常是由于非法的存储器访问(比如访问0地址.写只读存储位置等)和非法的程序行为(比如除以0等)等造成的.常见的4种异常及产 ...
- MFC单文档程序结构
MFC单文档程序结构三方面: Doc MainFrame View
- GRID用法(取行、列值;定位选中某行等等)
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- NODEjs常见错误检查
一.没有添加对uncaughtException异常的捕捉处理,最起码也要在其中写个日志记录错误,然后可以调用 process.exit(1); 退出进程. 二.处理函数的回调函数检查,经常忘记在回调 ...
- 解高次同余方程 (A^x=B(mod C),0<=x<C)Baby Step Giant Step算法
先给出我所参考的两个链接: http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4 (AC神,数论帝 扩展Baby Step Gian ...
- POJ 2482 Stars in Your Window (线段树+扫描线+区间最值,思路太妙了)
该题和 黑书 P102 采矿 类似 参考链接:http://blog.csdn.net/shiqi_614/article/details/7819232http://blog.csdn.net/ts ...