map-reduce原理简介
2020-09-24 11:11:38 0 举报
AI智能生成
map-reduce原理
作者其他创作
大纲/内容
简介
map-reduce是一个分布式框架,用于大规模数据集的并行运算,简单说就是框架通过协作成千上万机器
来计算数据。
来计算数据。
上图中原理就是框架中有个master角色的机器负责接收任务分发给workers,等待workers完成任务,即可返回,
需要注意的是map-reduce是基于一个分布式文件系统的(GFS),
通过map-reduce来进行计算任务,需要提供3个东西给master,
1.需要计算的数据
2.map函数
3.reduce函数
1.需要计算的数据
2.map函数
3.reduce函数
map-reduce过程
1.master切割需要计算的数据集A为N小片(让每个worker计算量变小,分散计算)
2.master把任务分给worker执行map过程,(每次针对一个小片数据), 输出中间结果B
3.master把任务分给worker执行reduce过程, reduce过程读取步骤2的中间结果来进行计算,产生计算结果C
4. master合并计算结果C产生D返回。
master和worker
master功能
1.接收worker注册
2.接收任务
3.调度worker进行任务计算,确保任务计算成功
4.整合计算结果返回
worker功能
主要用来执行map过程和reduce过程。
map过程
master已经将要计算的原始数据分片了, 假如分片X要进行map过程,分片里面的内容会被读取出来执行map函数,然后得到一个key-value列表,这些key-value会被写入到中间临时文件中,就是上面的tmp文件。
一个分片的计算中间结果会被写入到多个tmp文件中,写入到哪个tmp文件是根据hash算法来计算,这样做目的是保证同一个key的计算结果
保存在同一个temp文件中。经过map过程,同一个Key的计算结果能保证在同一个文件中,所以reduce计算过程也就不用跨越文件去寻找key的计算结果。
保存在同一个temp文件中。经过map过程,同一个Key的计算结果能保证在同一个文件中,所以reduce计算过程也就不用跨越文件去寻找key的计算结果。
reduce过程
reduce过程比较简单,目的是合并相同Key的结果,由于相同key都在同一个文件中,所以基本是一对一。
merge过程
就是将多个merge临时文件合并成一个结果输出。
map-reduce需要注意的特性
1.幂等性
一件事情干一次和干n次结果都一样
2.容错性
主要是某个worker出错了,master需要将任务交给其他worker执行。
0 条评论
下一页