`
lesorb
  • 浏览: 123770 次
  • 性别: 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
分享到:
评论

相关推荐

    imagenet-googlenet-dag网络模型测试代码

    `Imagenet`是一个大规模的图像分类数据集,包含超过一百万张标注过的图片,覆盖了一千个类别。这个测试代码需要用户先将`matconvnet-25`库编译好,并将其放置到正确的位置,以便代码可以调用该库进行运算。 `...

    go-dag:有向无环图的Golang实现

    有向无环图(DAG,Directed Acyclic Graph)是一种重要的数据结构,它在计算机科学中有着广泛的应用,如任务调度、编译器设计、网络路由等。在Golang中,实现DAG可以帮助开发者构建高效且灵活的系统。本文将深入探讨...

    编译原理DAG的优化

    在编译原理中,DAG(有向无环图,Directed Acyclic Graph)是一种重要的数据结构,常用于表示中间代码,如三地址码或四元式。DAG优化是编译器优化的一个重要阶段,其目标是通过改进程序的结构来提高运行效率,减少...

    Python大数据处理与分析PPT.zip

    Python在大数据处理与分析领域扮演着重要角色,其简洁易读的语法和丰富的库使得它成为数据科学家和工程师的首选工具。本资料“Python大数据处理与分析PPT”旨在深入探讨如何利用Python来管理和理解海量数据。以下是...

    大数据处理统一引擎Apache Spark研究.pdf

    总之,Apache Spark的出现为大数据处理提供了一种强大的统一计算引擎,它不仅继承了MapReduce的优势,还通过内存计算和DAG调度优化了性能,同时支持多种数据处理模式,极大地推动了大数据技术的发展和应用。

    Chapter3-_-大数据处理技术Spark-第3章-Spark的设计与运行原理_1

    Spark是由美国加州伯克利大学的AMP实验室在2009年开发的分布式计算框架,专为大规模数据处理设计。它以其高效、易用和通用性获得了广泛关注,尤其是在2013年成为Apache软件基金会的重要项目之后。Spark的核心特性...

    综合实训-分布式计算v2.rar

    此外,还有Spark的DAG(有向无环图)计算模型,它提供内存计算,显著提高了数据处理速度。 5. **分布式一致性与共识算法**:分布式系统中的数据一致性是关键问题,Paxos、Raft和Zookeeper等共识算法在保证数据一致...

    拓扑排序------打印输出计算机本科专业4年每学期的课表

    拓扑排序是图论中的一个重要概念,特别是在有向无环图(DAG,Directed Acyclic Graph)中。在这个场景中,计算机本科专业的四年课程安排可以被看作是一个有向图,其中每个节点代表一门课程,箭头则表示课程之间的先...

    基于Scala的Apache Spark大数据处理设计源码

    Apache Spark 是一个强大的分布式计算框架,专为大数据处理而设计,其核心特性是高效的数据缓存和快速的数据处理。在本项目中,源码使用了Scala作为主要开发语言,同时也结合了Java和Python,展示了Spark的多语言...

    数据流技术在GPU和大数据处理中的应用.pdf

    而Spark则进一步优化了数据流处理,通过内存计算和DAG(有向无环图)任务调度,减少了数据在磁盘间的I/O操作,提高了大数据处理的速度和效率。 在大数据处理中,数据流模型能够有效地处理实时或近实时的数据流,...

    Python-Dampr纯Python数据处理

    5. **轻量级**:相比于Hadoop等分布式计算框架,Dampr的轻量级设计使得它更适合于本地开发和小规模的数据处理任务。它可以快速启动,且易于调试和扩展。 6. **机器学习应用**:考虑到标签“Python开发-机器学习”,...

    大数据处理流程.pdf

    大数据处理流程涵盖了从数据采集、预处理、入库、分析到展现的多个阶段,这些阶段构成了一个完整的大数据项目的核心步骤。 1. 数据采集:在这个阶段,数据从无到有,或者通过工具从不同源集中到一起。数据采集有两...

    互联网科技:数据流技术在GPU和大数据处理中的应用.docx

    Apache Spark是另一种流行的大数据处理框架,它提供了更高效的内存计算和DAG(有向无环图)数据流模型,提高了数据处理速度。Flink则是一个实时流处理系统,它能够处理连续不断的数据流,支持事件时间和状态管理,...

    Spark+快速入门共7页.pdf.zip

    Spark,作为大数据处理领域的重要框架,是Apache软件基金会下的一个开源项目,由加州大学伯克利分校AMPLab开发并维护。它以高效、易用和可扩展性著称,尤其在大规模数据处理和分析中表现出色。本指南将围绕Spark的...

    大数据处理平台Spark基础实践研究.pdf

    核心概念之一是RDD(弹性分布式数据集),它是Spark数据处理的基本单元。RDD将数据分布在不同的节点上,可进行分布式存储。其设计理念在于使用粗粒度的数据并行计算,这使得对于某些计算密集型任务,Spark的处理效率...

    spark快速数据处理_完整中文版

    Spark是Apache软件基金会下的一个开源大数据处理框架,它以其高效的并行计算能力、内存计算以及易用性在大数据领域广受赞誉。Spark的核心设计理念是提供一个统一的平台,支持多种数据处理模式,包括批处理、交互式...

    尚硅谷大数据技术之Hadoop(MapReduce)1

    MapReduce是Google提出的一种用于处理和生成大规模数据集的编程模型,被广泛应用于大数据处理领域。Hadoop将其作为核心组件,实现了分布式计算的功能。MapReduce的核心思想是将复杂的并行计算分解为两个主要步骤:...

    大规模数据处理引擎SPARK在状态评估领域中的应用.pdf

    本文主要探讨了大规模数据处理引擎Spark在电力设备状态评估领域的应用。作者钟令枢来自华南理工大学,文章发表在《电工技术·理论与实践》期刊上。 知识点一:Spark计算模型 Spark采用弹性分布式数据集(RDD)作为...

    主流大数据处理开源架构的分析及对比评测.pdf

    在当今的大数据时代,电信业务领域对于大数据处理的需求日益增长。本文将围绕现有的主流分布式大数据处理架构进行深入的分析和对比评测,主要包括Hive、Impala和Spark三个开源架构,旨在为大数据分析提供架构选型的...

Global site tag (gtag.js) - Google Analytics