zoukankan      html  css  js  c++  java
  • 云计算(8)--MapReduce如何处理fault

    一些常见的故障

    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

  • 相关阅读:
    [洛谷P1484] 种树
    Codeforces Round #505 Div. 1 + Div. 2
    [NOIp2015] 斗地主
    ☆ [NOIp2016] 天天爱跑步 「树上差分」
    [NOI2010] 超级钢琴
    [POI2000] 病毒
    [SCOI2010] 股票交易
    [NOI2002] 贪吃的九头龙
    [ZJOI2008] 骑士
    LeetCode 笔记系列 18 Maximal Rectangle [学以致用]
  • 原文地址:https://www.cnblogs.com/yan2015/p/4878984.html
Copyright © 2011-2022 走看看