分布式基础学习【二】 —— 分布式计算系统(Map/Reduce)2011-04-14 博客园 duguguiyu二. 分布式计算(Map/Reduce)分布式式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google Map/Reduce 框架所设计的分布式框架。在Hadoop中,分布式文件系统,很大程度上,是为各种分布式计 算需求所服务的。我们说分布式文件系统就是加了分布式的文件系统,类似的定义推广到分 布式计算上,我们可以将其视为增加了分布式支持的计算函数。从计算的角度上看, Map/Reduce框架接受各种格式的键值对文件作为输入,读取计算后,最终生成自定义格式的 输出文件。而从分布式的角度上看,分布式计算的输入文件往往规模巨大,且分布在多个机 器上,单机计算完全不可支撑且效率低下,因此Map/Reduce框架需要提供一套机制,将此计 算扩展到无限规模的机器集群上进行。依照这样的定义,我们对整个Map/Reduce的理解,也 可以分别沿着这两个流程去看。。。在Map/Reduce框架中,每一次计算请求,被称为作业。在分布式计算Map/Reduce框架中, 为了完成这个作业,它进行两步走的战略,首先是将其拆分成若干个Map任务,分配到不同的 机器上去执行,每一个Map任务拿输入文件的一部分作为自己的输入,经过一些计算,生成某 种格式的中间文件,这种格式,与最终所需的文件格式完全一致,但是仅仅包含一部分数据 。因此,等到所有Map任务完成后,它会进入下一个步骤,用以合并这些中间文件获得最后的 输出文件。此时,系统会生成若干个Reduce任务,同样也是分配到不同的机器去执行,它的 目标,就是将若干个Map任务生成的中间文件为汇总到最后的输出文件中去。当然,这个汇总 不总会像1 + 1 = 2那么直接了当,这也就是Reduce任务的价值所在。经过如上步骤,最终, 作业完成,所需的目标文件生成。整个算法的关键,就在于增加了一个中间文件生成的流程 ,大大提高了灵活性,使其分布式扩展性得到了保证。。。I. 术语对照和分布式文件系统一样,Google、Hadoop和....我,各执一种方式表述统一概念,为了保 证其统一性,特有下表。。。
文中翻译 | Hadoop术语 | Google术语 | 相关解释 |
作业 | Job | Job | 用户的每一个计算请求,就称为一个作业。 |
作业服务器 | JobTracker | Master | 用户提交作业的服务器,同时,它还负责各个作业任务的分 配,管理所有的任务服务器。 |
任务服务器 | TaskTracker | Worker | 任劳任怨的工蜂,负责执行具体的任务。 |
任务 | Task | Task | 每一个作业,都需要拆分开了,交由多个服务器来完成,拆 分出来的执行单位,就称为任务。 |
备份任务 | Speculative Task | Buckup Task | 每一个任务,都有可能执行失败或者缓慢,为了降低为此付 出的代价,系统会未雨绸缪的实现在另外的任务服务器上执行同样一个任务,这就是备份任 务。 |