MapReduce分布式计算原理

本文主要通过一个例子引出MapReduce,介绍MapReduce分布式计算原理。
首先为了方便大家理解,先来讲一个伐树的例子
有abc三座山,山上有橡木、红木、樟木,现在派三个工人去伐木
MapReduce分布式计算原理
工人在山上伐木并将树木进行简单的加工,组装,然后发送给工厂进行组装
在这个过程中:
工人相当于Map
工人在每个山头组装——>combiner
将半成品运输到工厂——>shuffle (网络IO,这是最耗时间的)
将运输过来的半成品进行大组装——>reduce(大合并)
MapReduce分布式计算原理
现在我们假设要计算的数据在HDFS上,HDFS block块是按照字符来切割,在存储时极有可能会出现乱码。
block=split切片=map task
为了避免block切割出现断层的现象(如下图:)
MapReduce分布式计算原理
split比block大几kb或者小几kb
下面我们来分析一下MR的详细原理:
MapReduce分布式计算原理
MapReuce 计算框架可以简单的用飞机图纸帮助理解
MapReuce——>Application——>资源调度器——>任务调度器——>分布式并行计算
画图——>919飞机——>空管局——>Driver——>翱翔天空(根据图纸造出飞机,飞机起飞需要空管局提供航线,然后需要一个司机驾驶飞机,才可以起飞)