**1. 什么是MapReduce?**
重温 Hadoop 四大组件:
- **HDFS**:分布式文件系统
- **MapReduce**:分布式运算编程框架
- **YARN**: Hadoop 的资源调度系统
- **Common**: 以上三大组件的底层支撑组件,主要提供基础工具包和 RPC 框架等
MapReduce 是一个**分布式运算程序的编程框架**,是用户开发“基于 Hadoop 的数据分析应用”的核心框架。
MapReduce 核心功能是将**用户编写的业务逻辑代码**和**自带默认组件**整合成一个完整的分布式运算程序,并发运行在一个 Hadoop 集群上。
**2. 为什么需要 MapReduce?**
(1)海量数据在单机上处理因为硬件资源限制,无法胜任;
(2)而一旦将单机版程序扩展到集群来分布式运行,将极大增加程序的复杂度和开发难度;
(3)引入 MapReduce 框架后,开发人员可以将绝大部分工作集中在业务逻辑的开发上,而将分布式计算中的复杂性交由框架来处理。
程序由单机版扩成分布式版时,会引入大量的复杂工作。为了提高开发效率,可以**将分布式程序中的公共功能封装成框架,让开发人员可以将精力集中于业务逻辑。**
Hadoop 当中的 MapReduce 就是这样的一个分布式程序运算框架,它把大量分布式程序都会涉及到的内容都封装起来,让用户只用专注自己的业务逻辑代码的开发。