2,MapReduce原理及源码解读
平凡的神灯 人气:0
# MapReduce原理及源码解读
[TOC]
### 一、分片
#### 灵魂拷问:为什么要分片?
- **分而治之:**MapReduce(MR)的核心思想就是分而治之;何时分,如何分就要从原理和源码来入手。做为码农大家都知道,不管一个程序多么复杂,在写代码和学习代码之前最重要的就是搞懂输入和输出,而MR的输入其实就是一个目录。而所谓的分而治之其实也是在把大文件分成小文件,然后一个机器处理一个小文件,最后再合并。所以MR的第一步就是对输入的文件进行分片。
#### 1.1 对谁分片
- **对每个文件分片:**分片是对输入目录中的每一个文件进行分片。后面的分片都是针对单个文件分片。
- **源码解读(对谁分片):**
~~~java
// 分片的源码位置
package org.apache.hadoop.mapreduce.lib.input;
abstract class FileInputFormat.java;
// 下面代码所在方法
method getSplits();
// InputStatus表示一个切片类
List
加载全部内容