MapReduce 工作机制
MapReduce 擅长处理大数据,其思想就是“分而治之”。
Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:
一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。
Reducer负责对map阶段的结果进行汇总。
MapReduce 的整个工作过程如上图所示,它包含如下4个独立的实体: 实体一:客户端,用来提交 MapReduce 作业。 实体二:JobTracker,用来协调作业的运行。 实体三:TaskTracker,用来处理作业划分后的任务,即真正的计算部分。 实体四:HDFS,用来在其它实体间共享作业文件。
MapReduce 的局限
MapReduce 是一个为批量处理而设计的模型,从任务的启动延迟性、中间结果的落盘的特点不难看出,采用这一计算模型的系统,都具有时延较高的特点,在那些对时延非常敏感的系统中不宜采用。也就是说 MapReduce 比较适合那些超大数据量的计算,不适合轻量级计算。
Spark也有延迟,要低延迟的话得用Flink或者SparkStream
- 复习 MapReduce 框架 (@2023-12-13)