云计算分布式并行计算:系统架构

MapReduce是Google公司设计的分布式计算模型,作为Google公司的核心技术,MapReduce在处理T级别以上巨量数据的业务上有着明显的优势。Google公司MapReduce实现是该公司的保密技术,而来自开源社区Apache的Hadoop项目则是此思想的java克隆版本。微软则通过Dryad平台进行分布式系统应用搭建。上一篇文章中,我们浅析了 云计算分布式并行计算的编程模型,由于MapReduce是目前比较流行流行的分布式系统平台,所以本文将重点讲述微软云计算Dryad和Google的MapReduce分布式系统结构。

  系列文章:

  浅析云计算分布式并行计算:编程模型

  Dryad系统的总体的构建用来支持有向无环图(Directed Acycline Graph,DAG)类型数据流的并行程序。Dryad的整体框架根据程序的要求完成调度工作,自动完成任务在各个节点上的运行。在Dryad平台上,每个Dryad工作或并行计算过程被表示为一个有向无环图。图中的每个节点表示一个要执行的程序,节点之间的边表示数据通道中数据的传输方式,其可能是文件、TCP Pipe、共享内存等,为了支持数据类型需要针对每个类型有序列化代码。

浅析云计算分布式并行计算:系统架构
▲图1 Dryad系统结构

  如图1所示,当用户使用Dryad平台时,首先是需要在任务管理(JM)节点上建立自己的任务。每一个任务由一些处理过程以及在这些处理过程数据传递组成。任务管理器(JM)获取无环图之后,便会在程序的输入通道准备,当有可用机器的时候便对它进行调度。JM从命名服务器(NS)那里获得一个可用的计算机列表,并通过一个维护进程(PD)来调度这个程序。

  系统组件:

  任务管理器(Job Manager,JM):每个Job的执行被一个Job Manager控制,该组件负责实例化这个Job的工作图;在计算机群上调度节点的执行;监控各个节点的执行情况并收集一些信息;通过重新执行来提供容错;根据用户配置的策略动态地调整工作图;

  计算机群(Cluster):用于执行工作图中的节点;

  命名服务器(Name Server,NS):负责维护Cluster中各个机器的信息;

  维护进程(PDaemon,PD):进程监管与调度工作。

  从总体来看,传统的Linux/Unix管道是一维管道,每个节点在管道中是单个的程序。而Dryad的执行过程就可以看做是一个二维的管道流的处理过程。其中,每个节点可以具有多个程序的执行,通过这种算法可以同时处理大规模数据。

浅析云计算分布式并行计算:系统架构
▲图2 Dryad任务结构

  如图2所示,我们可以看到,在每个节点进程(Vertices Processes)上都有一个处理程序在运行,并且通过数据管道(Channels)的方式在它们之间传送数据。二维的Dryad管道模型定义了一系列的操作,可以用来动态的建立并且改变这个有向无环图。这些操作包括建立新的节点,在节点之间加入边,合并两个图以及对任务的输入和输出进行处理等。

  与微软Dryad相似,MapReduce编程模型可用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(化简)”,它们的主要思想都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。MapReduce映射处理结构,如图3所示。

浅析云计算分布式并行计算:系统架构
▲图3 MapReduce映射处理结构

  从上图可以看出,MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。微软Dryad与谷歌的MapReduc映射原理相似,但不同的是通过DryadLINQ来实现分布式程序编程设计。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25436212/viewspace-690374/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25436212/viewspace-690374/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值