3.4 MapReduce原理详解

单机程序计算流程

输入数据—>读取数据—>处理数据—>写入数据—>输出数据

Hadoop计算流程

input data:输入数据

InputFormat:对数据进行切分,格式化处理

map:将前面切分的数据做map处理(将数据进行分类,输出(k,v)键值对数据)

shuffle&sort:将相同的数据放在一起,并对数据进行排序处理

reduce:将map输出的数据进行hash计算,对每个map数据进行统计计算

OutputFormat:格式化输出数据





map:将数据进行处理

buffer in memory:达到80%数据时,将数据锁在内存上,将这部分输出到磁盘上

partitions:在磁盘上有很多"小的数据",将这些数据进行归并排序。

merge on disk:将所有的"小的数据"进行合并。

reduce:不同的reduce任务,会从map中对应的任务中copy数据

​ 在reduce中同样要进行merge操作

MapReduce架构

  • MapReduce架构 1.X
    • JobTracker:负责接收客户作业提交,负责任务到作业节点上运行,检查作业的状态
    • TaskTracker:由JobTracker指派任务,定期向JobTracker汇报状态,在每一个工作节点上永远只会有一个TaskTracker

  • MapReduce2.X架构

    • ResourceManager:负责资源的管理,负责提交任务到NodeManager所在的节点运行,检查节点的状态
    • NodeManager:由ResourceManager指派任务,定期向ResourceManager汇报状态