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中的应用相关推荐

  1. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

    最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders ...

  2. 从Hadoop看普通算法在一个系统中的应用

    之前看了一些简单的算法题目,感觉很有意思,而在自己做的工程项目开发过程中,却又感觉很少用到,大约是所做的工程太过于简单的缘故吧.最近在读<Hadoop权威指南>那本书,从中看到了不少算法的 ...

  3. java 奇偶数据排序算法,简单讲解奇偶排序算法及在Java数组中的实现

    简单讲解奇偶排序算法及在Java数组中的实现 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 [6 2 4 1 5 9] ...

  4. bm25算法Java代码_BM25算法在Lucene中的应用

    Lucene是apache软件基金会jakarta项目组的一个子项目,是一个用Java写的全文检索引擎工具包,可以方便的集成到系统中提以提供高效的检索能力,Lucene核心功能分为建索和检索两部分.而 ...

  5. JAVA线程池管理及分布式HADOOP调度框架搭建

    平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头.怎么做一套简便的线程开发模式 ...

  6. Java内存组成GC算法

    Java内存组成&GC算法 @(JAVA)[java] Java内存组成GC算法 一内存组成 一Java程序的内存组成 1Java堆 2方法区含常量池永久代 3栈 1Java虚拟机栈 2本地方 ...

  7. 阿里最新面试必备项之Java的String类,持续更新中!

    最新腾讯面试必备项之Java的String类,持续更新中! 1.1 String的特性 String类:代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例 ...

  8. Hadoop中的问题–何时无法交付?

    Hadoop是很棒的软件. 它不是原始的,但肯定不能消除它的荣耀. 它建立在并行处理的基础上,这个概念已经存在了数十年. Hadoop虽然从概念上来说并不是独创性的,但它显示了自由开放的力量(就像在啤 ...

  9. hadoop 中各种概念解释记忆

    https://blog.csdn.net/marvel_cheng/article/details/45480521 https://blog.csdn.net/qq_26437925/articl ...

最新文章

  1. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?
  2. 对外星智能的搜索得到了重大的升级
  3. 百度小程序opencard书法字典名家书法等测试日志记录
  4. 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
  5. 【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)
  6. linux man使用方法 和centos安装中文man包
  7. CCF NOI1024 因子个数
  8. 联想 M7400 pro Linux下 CUPS 驱动安装
  9. react todos 简单实现
  10. PRTR论文代码解读
  11. 幼儿园故事导入语案例_幼儿语言活动方案优秀案例合集
  12. java孙正英_JavaSE23-函数式接口Stream流
  13. 使用IO完善快递管理系统
  14. JAVA反编译工具总结
  15. 小米5主板原理图_小米5手机拆机图解教程
  16. 场内场外交易成本_什么是场内交易与场外交易?有何区别?
  17. 公司的耍流氓行为,你知道几个?
  18. 读《桥—巴拉克•奥巴马的人生及其崛起》有感
  19. 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件
  20. 【GZH逸佳君】答辩ppt模板-毕业季ppt模板-毕设ppt模板-本科答辩ppt模板-毕业答辩ppt模板-毕业设计答辩ppt-ppt模板免费下载-ppt模板下载免费版 100套

热门文章

  1. 【将酒】 面向年轻人打造新派白酒,首发总成交额破百万
  2. tmpfs临时文案系统
  3. Stylus—常见操作
  4. 亿客CRM系统被评定为湖北省优秀软件产品
  5. Tensorflow使用Char-CNN实现中文文本分类(1)
  6. 安卓自定义View进阶-事件分发机制原理
  7. cinnamon-settings No module named ‘PIL‘
  8. 如何在计算机安装本地磁盘e,本地硬盘安装Win7旗舰版系统的详细教程
  9. iOS修改UIImage图片尺寸大小逻辑分辨率
  10. 微软程序员求助:商汤、百度、头条、口碑、微软5份offer,怎么选?