Thursday, July 10, 2014

Map-Reduce进一步研究

上一篇文章讲了一下map-reduce的简单原理,这里我会进一步讲一些细节。

Master

存储了所有其他机器的状态(idle, in-progress, failure)和所有map处理完的中间数据的位置。Master负责将要处理的数据分配给map worker或者reduce worker.

Failure Tolerance

Master: 每隔一定的时间记录一个check points,如果master出问题,任务将从上一个记录点再次重新进行。

Map worker: master会把这个机器标记为failure。已经在此机器上完成的任务必须重新分配,因为中间结果存储在此机器的硬盘中。

Reduce worker: master会把这个机器标记为failure。已经在此机器上完成的任务不需要重新分配,因为reduce的结果存在一个全局的最终输出文档里。

Backup Tasks

当map-reduce所有操作接近结束时,有个小优化。master可以把剩余的工作重复分配给其他空余机器,无论哪台机器上执行完,master都会把那部分任务标记为完成。
这样可以大大减少时间的消耗

No comments:

Post a Comment