1. MapReduce定义
MapReduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。
2.MapReduce的优缺点
优点:
- 易于编程
简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的程序是一模一样的。就是因为这个特点使MapReduce编程变得很流行。 - 良好的扩展性。当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力
- 高容错性。其中一台机器挂了,它可以吧这个机器的任务转移到另外一个节点上运行,不至于运行失败,而且这个功能不需要人工来操作,由hadoop内部完成。
- 适合PB级别以上的海量数据的离线处理。但是难以做到毫秒级的一个返回结果。
缺点
不擅长实时计算、流式计算、DAG计算。