大数据技术实战教程 第4章Hadoop分布式计算框架.ppt

大数据技术实战教程 第4章Hadoop分布式计算框架.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
* 第4章Hadoop分布式计算框架 目 录 1 Mapreduce简介 Mapreduce编程模型 Mapreduce实例分析 2 3 1、MapReduce是什么 MapReduce是一种分布式并行编程模型,主要用于大规模数据集(大于1TB)的并行运算。大数据量的计算通常采用并行计算的处理手法。但对众多开发者来说,完全由自己实现一个并行计算程序难度太大,而MapReduce就是一种简化并行计算的编程模型,它可以使得那些没有多少并行计算经验的开发人员也可以开发并行应用程序。通过简化编程模型,降低开发并行应用程序的入门门槛。MapReduce的核心思想是“分而治之”。 MapReduce的定义隐含了以下三层含义: (1)MapReduce是一个基于集群的高性能并行计算平台。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布式并行计算集群。 MapReduce的定义隐含了以下三层含义: (2)MapReduce是一个并行计算与运行软件框架。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。 MapReduce的定义隐含了以下三层含义: (3)MapReduce是一个并行程序设计模型与方法。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理。 2、MapReduce的主要设计思想和特征 (1)向“外”横向扩展,而非向“上”纵向扩展。 MapReduce集群可以采用价格便宜、易于扩展的大量低端商用服务器或者PC机,而非价格昂贵、不易扩展的高端服务器。由于需要处理的是海量数据,所以当资源不够时,可以通过简单的添加机器来扩展其计算能力。 2、MapReduce的主要设计思想和特征 (2)高容错性。 MapReduce设计的初衷就是使程序能够部署在廉价的PC机上,而廉价PC机使得节点硬件失效和软件出错成为常态。因而,一个良好设计、具有容错性的并行计算系统不能因为某个节点的失效而影响计算服务的质量。MapReduce并行计算软件框架使用了多种有效的错误检测和恢复机制,如节点自动重启技术,使集群和计算框架具有对付节点失效的健壮性,能有效处理失效节点的检测和恢复。 2、MapReduce的主要设计思想和特征 (3)“迁就”数据,把处理向数据迁移。 传统高性能计算系统通常有很多处理器节点与一些外存储器节点相连,而大规模数据处理时,外存文件数据I/O访问会成为一个制约系统性能的瓶颈。为减少大规模数据并行计算系统数据通信开销,将处理向数据靠拢和迁移。MapReduce采用了数据/代码互定位的技术方法,计算节点首先负责计算其本地存储的数据,仅当节点无法处理本地数据时,再采用就近原则寻找其它可用计算节点,并把数据传送到该可用计算节点上进行计算。 2、MapReduce的主要设计思想和特征 (4)顺序处理数据,避免随机访问数据。 大规模数据处理的特点决定了大量的数据记录不可能全部存放在内存,通常是放在外存中进行处理。而磁盘的顺序访问比随机访问要快得多,因此MapReduce设计为面向顺序式大规模数据的磁盘访问处理的并行计算系统,所有计算都被组织成很长的流式操作,以便能利用分布在集群中大量节点上磁盘集合的高传输带宽。 2、MapReduce的主要设计思想和特征 (5)易于编程,为应用开发者隐藏系统层细节。 MapReduce提供了一种抽象机制将程序员与系统层细节隔离开来,程序员仅需描述需要计算什么,而具体怎么去做可以交由系统的执行框架处理,只需简单实现一些接口,就可以完成一个分布式程序。这样程序员可从系统底层细节中解放出来,无须考虑诸如数据分布存储管理、数据分发、数据通信和同步、计算结果收集等诸多细节问题,而致力于其应用本身计算问题的算法设计。 2、MapReduce的主要设计思想和特征 (6)平滑无缝的可扩展性 这里的可扩展性主要包括数据扩展和系统规模扩展。多项研究发现基于MapReduce的计算性能可随节点数目增长保持近似于线性的增长。 3、MapReduce适合及不适合场景 MapReduce易于编程,更加适合海量数据的离线处理,而非数据的实时处理。 MapReduce虽然有很多优势,但也有不擅长的地方,不擅长不代表不能做,而是实现的效果不太好。MapReduce不适合场景主要包括: (1)实时计算,MapReduce无法在毫秒或者秒级内迅速反馈结

您可能关注的文档

文档评论(0)

dllkxy + 关注
实名认证
内容提供者

本文库主要涉及建筑、教育等资料,有问题可以联系解决哦

版权声明书
用户编号:5213302032000001
认证主体丁**

1亿VIP精品文档

相关文档

相关课程推荐