大数据处理之-DAG计算

本文介绍了DAG(有向无环图)在大数据处理中的作用,特别是其在Dryad、FlumeJava和Tez等系统中的应用。Dryad是微软的批处理DAG计算系统,通过构建DAG图模型实现分布式任务处理。FlumeJava简化了多MR任务的连接,而Tez则是为提高交互数据分析效率而设计的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将图节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值