shuffle机制
map 的数量不是基于 blk 大小决定的; 基于中间抽象概念,叫切片; 一个切片对应一个 map 进程; 是一个逻辑概念; 大文件,一个切片对应一个 blk 即可,对于小文件,可以对应多个 blk ,即使去其他 datanode 获取,那么文件很小,不会影响太多时间传输; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ shuffle 某一个具体的map task进程,输出数据是如何缓存、中间是如何排序、如何分组的,然后转发给reduce,这个过程就叫做shullfe过程。shuffle是分布到整个集群协作运行的 partitions实现分组 buffer缓存 inputSplit切片逻辑产生一个map 进程 map结果输出k-v形式 k-v放到自己机器的内存中buffer,buffer缓冲区大小由配置文件指定,默认100M, buffer会把溢出数据放到磁盘中,分组,排序,合并(合并时候同一组还需要重新排序,因为每个分组中的数据排序之间存在135,268)