`
lesorb
  • 浏览: 120679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

大数据处理之-DAG计算

阅读更多
DAG是有向无环图(Directed Acyclic Graph)的简称。在大数据处理中,DAG计算常常指的是将计算任务在内部分解成为若干个子任务,将这些子任务之间的逻辑关系或顺序构建成DAG(有向无环图)结构。
DAG在分布式计算中是非常常见的一种结构,在各个细分领域都可以看见它,比如Dryad,Flumejava和Tez,都是明确构建DAG计算模型的典型,再如流式计算的Storm等系统或机器学习框架Spark等,其计算任务大多也是DAG形式出现的,除此外还有很多场景都能见到。

DAG计算的三层结构:
    最上层是应用表达层,即是通过一定手段将计算任务分解成由若干子任务形成的DAG结构,其核心是表达的便捷性,主要是方便应用开发者快速描述或构建应用。
    中间层是DAG执行引擎层,主要目的是将上层以特殊方式表达的DAG计算任务通过转换和映射,将其部署到下层的物理机集群中运行,这层是DAG计算的核心部件,计算任务的调度,底层硬件的容错,数据与管理信息的传递,整个系统的管理与正常运转等都需要由这层来完成。
    最下层是物理机集群,即由大量物理机器搭建的分布式计算环境,这是计算任务最终执行的场所。

Dryad简介
Dryad是微软的批处理DAG计算系统,其主要目的是为了便于开发者便携地进行分布式任务处理。
Dryad将具体计算组织成有向无环图,其中图节点代表用户写的表达式应用逻辑,图节点之间的边代表了数据流动通道。Dryad在实时以共享内存,TCP连接以及临时文件的方式来进行数据传递,绝大多数情况下采用临时文件的方式。

图示(如附件)是Dryad系统架构框图。Dryad的作业管理模块(Job Manager)JM在应用程序内部维护了一个基于DAG图模型的计算节点依赖关系图,作业管理模块通过命名服务器(Name Server)NS来获取可用的服务器列表,而后通过在这些服务器上运行的守护进程Daemon(图中D)来调度和执行计算节点Vertex(执行和监控)。各个计算节点之间通过例如文件,管道,网络等形式的数据通道交换数据。

为了能方便地描述复杂任务,Dryad采用了若干简单和DAG结构及其描述符的不断组合来构建复杂结构和方式。

Dryad将图节点的可执行代码分发到可用机器节点上,同时将该图节点涉及的输入和输出数据路径地址发送给相应和工作机,这样该工作机就可执行计算任务。调度程序跟踪DAG图中节点和执行状态和执行历史,如果JM调度程序崩溃,则整个任务失败。如果工作节点发生故障,调度程序会将图中节点对应代码发送到其他可用节点重新执行图节点程序,以此来达到容错目的。

FlumeJava和Tez
FlumeJava是Google内部开发的DAG系统,考虑到很多任务是需要多个MR任务连接起来共同完成的,而如果直接使用MR来完成会非常烦琐,因为除了完成MR任务本身外,还需要考虑如何衔接MR及清理各种中部结果等琐碎工作。
Tez是Apache孵化项目,其本身也是一个相对通用的DAG计算系统,最初提出Tez是为了改善交互数据分析系统Stinger的底层执行引擎,Stinger是Hive的改进版本,最初底层的执行引擎是Hadoop和MR任务形成的DAG任务图,Tez是它的升级版,效率更高。Tez通过消除Map阶段中间文件输出到磁盘过程以及引入Reduce-Reduce结构等改进措施极大提升了底层执行引擎和效率。
  • 大小: 68.8 KB
分享到:
评论

相关推荐

    spark讲义总结1

    **DAG有向无环图 : spark设计之初就考虑了 大量连续计算的需求 允许在对数据处理时 经由许多步算子 按序计算来实现处理 这些处理 是一个图的结构 但是要注意的是 图有向但是不能形成环 防止死循环 这样的有向无环...

    大数据处理流程.pdf

    Spark:尽管MapReduce和Hive能完成海量数据的⼤多数批处理⼯作,并且在打数据时代称为企业⼤数据处理的⾸选技术,但是其 数据查询的延迟⼀直被诟病,⽽且也⾮常不适合迭代计算和DAG(有限⽆环图)计算。由于Spark具有...

    服务计算与大数据是研究什么.docx

    多种计算模型:MaxCompute支持SQL、MapReduce、UDF(Java/Python)、Graph,基于DAG的处理,交互式,内存计算,机器学习等计算类型及MPI迭代类算法。简化了企业大数据平台的应用架构。 强数据安全:MaxCompute已...

    隐语 secretflow 是由蚂蚁发起的隐私计算通用框架

    工作流层,无缝集成数据处理、模型训练和超参调整。Kuscia: 一款基于 K3s 的轻量级隐私计算任务编排框架。SCQL: 允许多个不信任方在不泄露其私人数据的情况下进行联合分析的系统。SPU: 一种可证明、可测量的安全计算...

    hadoop-watershed:Hadoop Watershed 是一个分布式系统,用于在计算机集群上进行高效的大规模数据流处理

    Hadoop 分水岭(下一代) Hadoop Watershed 是一个分布式系统,用于在计算机集群上进行高效的大规模数据流处理。提议Hadoop Watershed 是一个用于大规模数据流的分布式流处理系统,其灵感来自于数据流模型。 流处理...

    apache-tez-0.9.2-src.tar.gz

    Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。...

    apache-tez-0.10.1-src.tar.gz

    Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。...

    apache-tez-0.10.2-bin.tar.gz

    Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。...

    apache-tez-0.10.2-src.tar.gz

    Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。...

    大数据平台常用组件-常见的大数据平台架构设计思路.pdf

    lambda 架构使开发⼈员能够构建⼤规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬件故障和⼈为失误有很好的容错性,关于 lambda架构可以在⽹上搜到很多相关⽂章。⽽kappa架构解决了lambda架构存在的...

    大数据基础知识入门.pdf

    Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。 Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题。 Spark的计算模式也属于MapReduce,但不局限于Map和Reduce...

    数据挖掘18大算法实现以及其他相关经典DM算法

    CBA算法是一种集成挖掘算法,因为他是建立在关联规则挖掘算法之上的,在已有的关联规则理论前提下,做分类判断,只是在算法的开始时对数据做处理,变成类似于事务的形式。详细介绍链接 RoughSets 粗糙集算法。粗糙...

    快速,高效,可扩展的分布式地图/缩减系统,以纯Go编写的DAG在内存或磁盘上执行,可以独立运行,也可以分布式运行。-Golang开发

    Gleam Gleam是一个高性能,高效的分布式执行系统,并且简单,通用,灵活且易于定制。 Gleam是内置在Go中的,用户...数据流经内存,可以选择流向磁盘。 多个map reduce步骤合并在一起以获得更好的性能。 高效记忆闪耀

    LarkMidTable 一站式开源的数据中台.rar

    Flink 离线和实时计算框架 Flink实现流批一体化、机器学习(FlinkML)、图分析(Gelly)、复杂事件处理(CEP)、关系数据处理(Table) Hive 数据仓库 将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能...

    大数据系统基础(自主模式)-清华大学-王建民、徐葳、陈康等 视频.txt

    │ 3 5.4大数据处理并行系统.mp4 │ 4 5.5内存计算需求.mp4 │ 5 5.6MapReduce文件传递数据.mp4 │ 6 5.7内存计算的可行性.mp4 │ 7 5.8内存层次的延迟.mp4 │ 8 5.9内存计算实例-spark.mp4 │ 9 5.10SPARK-RDD.mp4 ...

    大数据-Inceptor技术白皮书.pdf

    不能处理大数据:单台机器处理数据过大,或者由于数据倾斜导致中间结果超过内存大小时,常常出现内存 不够或者无法运行得出结果。但是Map/Reduce计算框架却可以处理大数据,因此在这方面Spark不如Map/Reduce 有效。...

    Spark工作原理

    ApacheSpark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark...

    Scala基础(11) 运行基本流程及RDD

    Spark和Hadoop的比较 MapReduce Spark 数据存储结构:磁盘HDFS文件系统的split 使用内存构建弹性分布式数据集RDD,...在实际应用中,大数据处理主要包括以下三个类型: 复杂的批量数据处理(通常时间跨度在数十分

    word源码java-exchange-parent:数据交换

    类似与Sqoop操作,核心功能导入/导出,把每个操作基于事件模型并发处理,根据Beam计算模型生成DAG应用。 服务端 可视化操作,传输交换能力依赖于其底层聚合的传输引擎,其顶层对各类数据源定义统一的参数模型,每种...

    Spark的核心组件

    1.一个大规模数据处理同一分析引擎 2.最初由美国加州破壳利大学的AMP实验室开发 3.基于内存计算的大数据并行计算框架 4.用于构建大型的、低延迟的数据分析应用程序 Spark的特点 1.速度快 采用先进的DAG调度程序 查询...

Global site tag (gtag.js) - Google Analytics