• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

Map/Reduce模型

云计算 lixian 2年前 (2019-10-25) 640次浏览 0个评论 扫描二维码
文章目录[隐藏]

Map/Reduce简介

1、一种用于在大型商用硬件集群中(成千上万的节点)对海量数据(多个兆兆字节数据集)实施可靠的、高容错的并行计算的软件系统
2、一个最先由Google提出的分布式计算软件构架
3、基本原理:将一个复杂的问题,分成若干个简单的子问题进行解决。然后,对子问题的结果进行合并,得到原有问题的解

Map/Reduce概念

1、”Map”和”Reduce”是编程语言中的概念,都是处理数据集合的函数
2、Map在处理数据序列的过程中只处理当前的数据信息,不需要跟之前处理的状态信息交互
3、主结点读入输入数据,把它分成可以用相同方法解决的小数据块,然后把这些小数据块分发到不同的工作节点上,每一个工作节点循环做同样的事,这就形成了一个树行结构,而每一个叶子节点来处理每一个具体的小数据块,再把这些处理结果返回给父节点
4、Reduce在处理过程中却依赖之前处理的结果,同时生成的结果也被后续的处理使用。结点得到所有子节点的处理结果,然后把所有结果组合并且返回到输出
5、一个Map/Reduce任务会把一个输入数据集分割为独立的数据块,然后Map任务会以完全并行的方式处理这些数据块。Map/Reduce系统自动对Map任务的输出分类,再把这些分类结果做为Reduce任务的输入。无论是任务的输入还是输出都会被存储在文件系统中。Map/Reduce系统关注任务调度、任务监测和重新执行失败的任务

Map/Reduce模型

1、计算节点和存储节点的一致性。允许Hadoop框架有效的调度任务在那些数据已经准备好了的节点上,好处是整个集群中总带宽非常的高
2、特点是可以用Map和Reduce方法来处理分布式计算问题时,尽可能的实现数据处理的本地化,降低由数据移动而产生的代价。每一个Map操作都是相对独立的,所有的Maps都是并行运行的,虽然实践中会受到数据源和CPU个数的影响。同样的,用一个Reduce集合来执行Reduce操作,所有带有相同key的Map输出会聚集到同一个Reduce。能够处理一般服务器所不能处理的大数据量处理问题
3、Map/Reduce系统由单一的JobTracker主节点和若干个TaskTracker从节点组成,其中每一个集群节点对应一个TaskTracker节点。主节点负责调度任务的各个组成任务到从节点上,监控并且重新执行失败的组成任务;从节点执行主节点安排的组成任务
4、Map/Reduce的Map和Reduce过程都定义了键值对()的数据结构,即系统视任务的输入数据为键值对集合,并且产生键值对结合做为任务的输出。一次任务的输入输出格式:
(input) -> map -> -> combine -> -> reduce -> (output)

Map/Reduce处理过程

Map/Reduce模型
一次Map/Reduce任务过程。用户提交任务给JobTracer,JobTracer把对应的用户程序中的Map操作和Reduce操作映射至TaskTracer节点中;输入模块负责把输入数据分成小数据块,然后把它们传给Map节点;Map节点得到每一个key/value对,处理后产生一个或多个key/value对,然后写入文件;Reduce节点获取临时文件中的数据,对带有相同key的数据进行迭代计算,然后把终结果写入文件。

Map/Reduce优缺点

1、Map/Reduce通过工作状态的返回有效处理了单点失效的问题
2、Map/Reduce是隶属于大粒度的并行计算模式,并行节点间在Map阶段中和Reduce阶段中无法通信,也并非是一种万能的数据处理模型


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:Map/Reduce模型
喜欢 (9)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到