block
数据块block位于不同datanode,默认128m
InputFormater
格式化输入
split
数据的逻辑切片,运算时按split切片分配计算节点,一般为block数的整数倍(个人理解最佳为block数与计算节点数的最小公倍数)
一个切片对应一个maptask
RecordReader
默认读取器读取一行
环形缓冲区
maptask映射结果写入环形缓冲区,可以同时读写不间断,默认100m,阈值80m
patition
环形缓冲区生产溢写spill文件之前
分区算法,key值hash后对分区数(reducetask数)取余,方便reduce拉取
sort
快速排序,先对分区排序,再对key值按字典顺序排序,使maptask结果有序
spill
写入溢写文件
merge
对同一maptask的多个溢写文件归并排序,合并为一个大文件,单个有序合并后整体有序
combiner
对合并的结果进行局部压缩,把原多条kv对合并成kv(…)数组,节省map到reduce之间网络带宽,某些计算如计算平均值时慎重使用,容易出错
fetch
reducetask抓取fetch各个maptask的结果文件
相同key被抓取到同一个reducer,每个reducer存在同一key来自不同maper的多个文件,以及多个key的文件
merge
reducetask要再做一次归并排序合并这些文件,不一定合并为一个,一个key一个最佳
reduce
reducetask进行归约计算
OutputFormater
格式化输出
Output
输出、落盘