zoukankan      html  css  js  c++  java
  • <容错性FaultTolerance><Hadoop><Spark>

    Overview

    • 讨论一些常见大数据框架的容错机制

    Fault Tolerance in Hadoop

    MapReduce

    • Heartbeat心跳机制:如果在一定时间内没有收到心跳,则reschedule all pending and in progress tasks to another Tasktracker, because the intermediate data belonging to the failed TaskTracker may not be available anymore. 也就是说,tasktracker失效的话,只能重做任务。 属于incomplete jobs的所有完成的map tasks也需要重做,因为失效任务的中间结果存在其本地,无法被reduce task获取。
    • 一个tasktracker可能被放到黑名单
    • TBD...

    HDFS

    • It handles faults by the process of replica creation.The replica of users data is created on different machines in the HDFS cluster.

    Fault Tolerance in Spark

    • 一般来说,对于分布式数据集的容错有两种方式:数据检查点和记录数据的更新
    • 面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。
    • 因此,Spark选择记录更新的方式
    • 但是,如果更新粒度太细太多,那么记录更新成本也不低。因此,RDD只支持粗粒度转换,即只记录单个块上执行的单个操作,然后将创建RDD的一系列变换序列记录下来,以便恢复丢失的分区。
    • 每个RDD都包含了他是如何由其他RDD变换过来的以及如何重建某一块数据的信息。因此RDD的容错机制又称“血统(Lineage)”容错
    • Lineage本质上很类似于数据库中的重做日志(Redo Log),只不过这个重做日志粒度很大,是对全局数据做同样的重做进而恢复数据。

    Lineage机制

    • RDD的Lineage记录的是粗颗粒度的特定数据Transformation操作(如filter、map、join等)行为。
    • RDD在Lineage依赖方面分为两种:窄依赖(Narrow Dependencies)与宽依赖(Wide Dependencies。
    • 容错原理:如果一个节点死机了,而且运算窄依赖,则只要把丢失的父RDD分区重算即可,不依赖于其他节点。而宽依赖需要父RDD的所有分区都存在,重算就很昂贵了。【所以在宽依赖处加Checkpoint是更值得的。】

    Checkpoint机制

    • 在如下两种情况下,需要加检查点(或者说加检查点更值得):
      • DAG中的lineage过长,如果重算,则开销太大(如在PageRank中);
      • 在宽依赖上做checkpoint获得的收益更大。
    • 由于RDD是只读的,所以Spark的RDD计算中一致性不是主要关心的内容,内存相对容易管理,减少了框架的复杂性,提升了性能和可扩展性。
    • Summary:检查点(本质是通过将RDD写入Disk做检查点)是为了通过lineage做容错的辅助,lineage过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果之后有节点出现问题而丢失分区,从做检查点的RDD开始重做Lineage,就会减少开销。

    TBD...

    满地都是六便士,她却抬头看见了月亮。
  • 相关阅读:
    [转贴]ASP.NET下对远程SQL SERVER数据库的备份和恢复的存储过程
    [原创]一个不错TreeView的样式
    [转贴]如何在ASP.NET中用OWC绘制图表
    [讨论]如何提高博客的访问量,写什么样的文章比较吸引读者啊!
    Revit API电缆桥架CableTray
    黄聪:win7系统下麦克风无法使用、有杂音和电流声的解决办法
    黄聪:.Net Framework Initialization Error – Unable to find a version of the runtime to run this application解决方案
    黄聪:js、Jquery将日期例如(20120903)转换为数字格式
    黄聪:wordpress文章同步发布到网易、天涯、新浪博客、百度空间插件
    黄聪:WIN7下安装 virtualbox WIN7系统 无法安装增强功能
  • 原文地址:https://www.cnblogs.com/wttttt/p/6924706.html
Copyright © 2011-2022 走看看