您的位置:首页 > 大数据 > 云计算

云计算(8)--MapReduce如何处理fault

2015-10-14 21:40 274 查看
一些常见的故障



NM周期性的给RM发送heartbeats,如果RM发现server fails,则它会让所有与这个server有关的AM知道,让受影响的job的AM采取一些action,重新分配它的task.

目前为止还没有能监测到RM failure的情况,我们使用hard backup,如果fail则使用secondary RM

continer requests虽然使用heartbeats会较慢(因为它隔一段周期发送一次),但是它avoid extra messages.

Slow servers





the slowest machine slows the entire job down(why): 某个task阻塞会导致整个job延缓,如一个map task阻塞,则reduce task无法进行下去。

keep track of progress of each task:跟踪这个任务,看这个任务进行到了百分之多少。

Speculative execution: 当监测到某个task很慢时,这时AM就在另一个server上复制它,这时有两个相同的task在不同的server上运行,其中的任何一个运行完成,则标记这个task运行完成,结束另一个没有完成的task.

Locality:如何存储分配



在同一个rack里面communication要比在不同的rack,要经过core switch进行communication要快些

HDFS把每个chunk都保存3遍,其中两个保存在1个rack上面,另一个保存在不同的rack上面(two different place),以防止其中一个rack goes down,另一个还可以使用

安排一个map task是按照如下的优先级: 存储input data的machine--> 与存储input data的machine在同一个rack--->任何其它地方

我们通常都将reduce task 与map task安排在同一个rack里面

Summary

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: