MapReduce是分布式运算程序的编程框架,其核心功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群框架上
Tips:为什么用MapReduce?
海量数据在单机上处理会因为硬件资源限制而无法胜任,如果将单机版程序扩展到集群来分布式运行,则将极大的增加程序的复杂性和开发难度。引入MapReduce框架后,开发人员可以将绝大部分工作集中到业务逻辑的开发上,将分布式计算中的复杂性交给框架处理
一、优缺点
1.优点:
a.适合大批量数据(PB级以上)的离线处理:上千台服务器集群并发工作能力,提供数据运算;
b.高容错性:因为MapReduce的设计初衷就是运行在廉价的机器上,这就需要MapReduce框架具有很高的容错性。其容错性是通过Hadoop内部完成,当运行过程中某个节点宕机了,可以主动把任务转移到其他正常的节点上继续运行,不至于让这个任务运行失败;
c.高扩展性:计算资源不够的时候,可以通过直接增加机器来扩展它的计算能。主要是横向扩展;