2021年南方电网校园招聘考试计算机知识点:并行数据处理MapReduce
来源:长理培训发布时间:2020-05-18 09:21:21
并行数据处理MapReduce
MapReduce是Google提出的一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。“Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和适量编程语言借鉴来的。正式用于MapReduce有函数式和矢量编程语言的共性,使得这种编程模式特别适合于非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等。
2.2.1 产生背景
MapReduce这种并行编程模式思想最早是在1995年提出的,文献[6]首次提出了“Map”和“fold”的概念,和现在Google所使用的“Map”和“Reduce”思想是相吻合的。
与传统的分布式程序设计相比,MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节还提供了一个简单而强大的接口。通过这个接口,可以吧大尺度的计算自动的并发和分布执行,从而使编程变得非常容易。还可以通过由普通PC构成的巨大群集来达到极高的性能。另外,MapReduce也具有较好的通用性,大量不同的问题都可以简单的通过MapReduce来解决。
MapReduce把对数据集的大规模操作,分发给一个主节点管理下的各分节点共同完成,通过这种方式实现任务的可靠执行与容错机制。在每个时间周期,主节点都会对节点的工作状态进行标记,一旦分节点状态标记为死亡状态,则这个节点的所有任务都将分配给其他分节点重新执行。
据相关统计,每使用一次Google搜索引擎,Google的后台服务器就要进行1011次运算。这么庞大的运算量,如果没有好的负载机制,有些服务器的利用率会很低,有些则会负荷太重,有些甚至可能死机,这些都会影响系统对用户的服务质量。而使用MapReduce这种编程模式,就保持了服务器之间的均衡,提高了整体效率。
点击加载更多评论>>