MR计算框架

map数量

  • 计算向数据移动,map计算框架移动到Block

  • map和Block不是一一对应,map与逻辑片(split)一一对应。原因:单个块可能过大,map处理时间长。所以block逻辑分块,多来几个map

reduce数量

  • 按理说reduce应该和key数量一样,但是可能存在不同key对应的数据量不一样,有的太累有的太闲

  • 一个reduce可以处理不同的key

  • 死板:同一个key必须在一个reduce 上执行

四个阶段

  • 切片

  • map

  • shuffle:相同的key成一组,交给同一个reduce处理

  • reduce

  • buffer in memory: 内存缓冲区

  • partition sort: 相同的key放在一起 第一次排序(分区排序)

  • key1 key2 交给同一个reduce,但是第一次排序完成了把key1 key2放在一个partion,但是内部是无序的

  • map阶段的 第二次排序, partion内部排序

  • buffer满了以后不是立即发到reduce,因为buffer size小,用一次传输不值得

  • 所以buffer满了以后 先spill to disk 溢写到磁盘

  • 多个溢写小文件merge to disk第三次排序

  • shuffle:多个map产生多个merge to disk,reduce不能说来一个map我处理一次,所以在这之前先第四次排序归并排序

posted @ 2020-07-07 17:01  Loading~  阅读(277)  评论(0编辑  收藏  举报