MapReduce 是什么?
MapReduce是一种分布式离线计算框架 主要分为MapTask 和ReduceTask两部分
主要用于大规模的数据集(大于1T)的并行运算
首先我先讲解下MapReduce 的流程: 架构图
个人理解 : 这张图拆封成左右两部分 左边(map) 右边(reduce)
首先分为 split -> map -> shuffle -> reduce
split: 比如我们有三个块,这样每个块分别开maptask并行去计算
block在存数据的时候会把数据切坏掉(比如:hello单词 可能按照 he 存在一个
块的末尾 llo存在下一个块的头上) split就是告诉后面的map 要计算的数据是
哪些(记录了文件的偏移量) 默认split的个数是和文件的block的块个数相
同
map: maptask的个数由 split 的个数决定 map中输出的内容 以 一种 key , value的
形式输出 “相同”的key为一组,调用一次reduce方法,方法内迭代这一
组数据进行计算
shuffle: