MapReduce基础概念

2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文

https://blog.csdn.net/dingguanyi/article/details/84067236

https://baike.baidu.com/item/MapReduce/133425?fr=aladdin

MapReduce提供了以下的主要功能:

1)数据划分和计算任务调度:

系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动 调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并 负责Map节点执行的同步控制。

2)数据/代码互定位:

为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向 数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻 找可用节点以减少通信延迟。

3)系统优化:

为了减少数据通信开销,中间结果数据进入Reduce节点前会进行一定的合并处理;一个Reduce节点所处理的数据可能会来自多个 Map节点,为了避免Reduce计算阶段发生数据相关性,Map节点输出的中间结果需使用一定的策略进行适当的划分处理,保证相关性数据发送到同一个 Reduce节点;此外,系统还进行一些计算性能优化处理,如对最慢的计算任务采用多备份执行、选最快完成者作为结果。

4)出错检测和恢复:

以低端商用服务器构成的大规模MapReduce计算集群中,节点硬件(主机、磁盘、内存等)出错和软件出错是常态,因此 MapReduce需要能检测并隔离出错节点,并调度分配新的节点接管出错节点的计算任务。同时,系统还将维护数据存储的可靠性,用多备份冗余存储机制提 高数据存储的可靠性,并能及时检测和恢复出错的数据。

MapReduce的一个经典实例是Hadoop。用于处理大型分布式数据库。由于Hadoop关联到云以及云部署,大多数人忽略了一点,Hadoop有些属性不适合一般企业的需求,特别是移动应用程序。下面是其中的一些特点:

  • Hadoop的最大价值在于数据库,而Hadoop所用的数据库是移动应用程序所用数据库的10到1000倍。对于许多人来说,使用Hadoop就是杀鸡用牛刀。

  • Hadoop有显著的设置和处理开销。 Hadoop工作可能会需要几分钟的时间,即使相关数据量不是很大。

  • Hadoop在支持具有多维上下文数据结构方面不是很擅长。例如,一个定义给定地理变量值的记录,然后使用垂直连接,来连续定义一个比hadoop使用的键值对定义更复杂的数据结构关系。

  • Hadoop必须使用迭代方法处理的问题方面用处不大——尤其是几个连续有依赖性步骤的问题。 [5] 

MapReduce (EMR),这是一项Hadoop服务。Hadoop旨在同期文件系统工作,以HDFS著称。

当用户用EMR创建了一个Hadoop集群,他们可以从AWS S3或者一些其他的数据存储复制数据到集群上的HDFS,或者也可以直接从S3访问数据。HDFS使用本地存储,而且通常提供了比从S3恢复更好的性能,但是在运行Hadoop工作之前,也需要时间从S3复制数据到HDFS。如果EMR集群要运行一段时间,且针对多项工作使用相同的数据,可能值得额外的启动时间来从S3复制数据到HDFS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值