java dag_[转] DAG算法在hadoop中的应用
http://jiezhu2007.iteye.com/blog/2041422
大学里面数据结构里面有专门的一章图论,可惜当年没有认真学习,现在不得不再次捡 起来。真是少壮不努力,老大徒伤悲呀!什么是DAG(Directed Acyclical Graphs),先来看下教科书上的定义吧:如果一个有向图无法从某个顶点出发经过若干条边回到该点。让我们再来看看DAG算法现在都应用在哪些 hadoop引擎中。
Tez:
Hortonworks开发的DAG计算框架,是从MapReduce计算框架演 化而来的通用DAG计算框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、 Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组 合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业,可以用来替换Hive/Pig等。
Oozie:
Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。
hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执
行的流程,并包含工作流的起点和终点(start、end和fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。
动作节点是一些机制,通过它们工作流会触发执行计算或者处理任务。Oozie为以下类型的动作提供支持: Hadoop
map-reduce、Hadoop文件系统、Pig、Java和Oozie的子工作流。
Spark:
Resilient Distributed Dataset
(RDD)弹性分布数据集
是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表
示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次
对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。
元数据的结构是DAG(有向无环图),其中每一个“顶点”是RDD(包括生产该RDD的算子),从父RDD到子RDD有“边”,表示RDD间的依赖性。Spark给元数据DAG取了个很酷的名字,Lineage(世系)。
Spark程序的运行场景。它由客户端启动,分两个阶段:第一阶段记录变换算子序列、增量构建DAG图;第二阶段由行动算子触 发,DAGScheduler把DAG图转化为作业及其任务集。Spark支持本地单节点运行(开发调试有用)或集群运行。
java dag_[转] DAG算法在hadoop中的应用相关推荐
- Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法
最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders ...
- 从Hadoop看普通算法在一个系统中的应用
之前看了一些简单的算法题目,感觉很有意思,而在自己做的工程项目开发过程中,却又感觉很少用到,大约是所做的工程太过于简单的缘故吧.最近在读<Hadoop权威指南>那本书,从中看到了不少算法的 ...
- java 奇偶数据排序算法,简单讲解奇偶排序算法及在Java数组中的实现
简单讲解奇偶排序算法及在Java数组中的实现 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 [6 2 4 1 5 9] ...
- bm25算法Java代码_BM25算法在Lucene中的应用
Lucene是apache软件基金会jakarta项目组的一个子项目,是一个用Java写的全文检索引擎工具包,可以方便的集成到系统中提以提供高效的检索能力,Lucene核心功能分为建索和检索两部分.而 ...
- JAVA线程池管理及分布式HADOOP调度框架搭建
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头.怎么做一套简便的线程开发模式 ...
- Java内存组成GC算法
Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...
- 阿里最新面试必备项之Java的String类,持续更新中!
最新腾讯面试必备项之Java的String类,持续更新中! 1.1 String的特性 String类:代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例 ...
- Hadoop中的问题–何时无法交付?
Hadoop是很棒的软件. 它不是原始的,但肯定不能消除它的荣耀. 它建立在并行处理的基础上,这个概念已经存在了数十年. Hadoop虽然从概念上来说并不是独创性的,但它显示了自由开放的力量(就像在啤 ...
- hadoop 中各种概念解释记忆
https://blog.csdn.net/marvel_cheng/article/details/45480521 https://blog.csdn.net/qq_26437925/articl ...
最新文章
- c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?
- 对外星智能的搜索得到了重大的升级
- 百度小程序opencard书法字典名家书法等测试日志记录
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- 【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)
- linux man使用方法 和centos安装中文man包
- CCF NOI1024 因子个数
- 联想 M7400 pro Linux下 CUPS 驱动安装
- react todos 简单实现
- PRTR论文代码解读
- 幼儿园故事导入语案例_幼儿语言活动方案优秀案例合集
- java孙正英_JavaSE23-函数式接口Stream流
- 使用IO完善快递管理系统
- JAVA反编译工具总结
- 小米5主板原理图_小米5手机拆机图解教程
- 场内场外交易成本_什么是场内交易与场外交易?有何区别?
- 公司的耍流氓行为,你知道几个?
- 读《桥—巴拉克•奥巴马的人生及其崛起》有感
- 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件
- 【GZH逸佳君】答辩ppt模板-毕业季ppt模板-毕设ppt模板-本科答辩ppt模板-毕业答辩ppt模板-毕业设计答辩ppt-ppt模板免费下载-ppt模板下载免费版 100套