引言
- 在mapreduce的运行过程中,有很多精巧的机制保证整个作业运行在高效率、相对公平和高容错性的环境下。
- mapreduce运行过程中(特别是shuffle过程中)有很多容易混淆的名词。本文通过罗列这些名词的含义来对这些过程加以解释说明。
名词解释
名词 | 含义 |
---|---|
shuffle | 将map的输出作为输入传给reducer的过程的总称; |
spill | map的结果从内存往磁盘写数据的过程;中文译为“溢写”,但并不一定是当内存溢出后才写入磁盘; |
partitioner | 指partitioner接口,作用是根据key或value及reduce的数量决定当前的这对输出数据 |
sort | 指快速排序;当map内存占用达到一定比例时,需对于内存中的key做sort,以便combiner过程; |
combiner | 将一个map内存中具有相同 |
merge | 若map产生的数据量较大,一个map会有多个spill过程从而在磁盘中产生多个spill文件。将磁盘中多个spill文件合并成一个的过程称为spill;merge的本质是合并文件的过程,具有相同key的value并没有在merge过程中相加,而是在combiner中实现; |