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

  • 相关阅读:
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业02
    Django连接MySql数据库
    asyncio异步编程
    Django-rest framework框架
    Git版本管理工具详细教程
    MySQL的sql_mode模式说明及设置
  • 原文地址:https://www.cnblogs.com/yan2015/p/4878984.html
Copyright © 2011-2022 走看看