• 云计算(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

  • 相关阅读:
    scala中 object 和 class的区别
    scala中的apply方法与unapply方法
    Scala中的样例类详解
    Scala 中下划线的一些魔法
    Hadoop搭建配置参数调优
    设置ESX/ESXi中(Linux)虚拟机从U盘引导启动
    CentOS下编译安装Busybox
    LRU算法简单实现
    Spark 3.0 动态分区裁剪(Dynamic Partition Pruning)
    Hive中的数据分桶以及使用场景
  • 原文地址:https://www.cnblogs.com/yan2015/p/4878984.html
Copyright © 2020-2023  润新知