写在前面

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系

解答

在这里插入图片描述

容错性设计HDFS内置了良好的容错性设计策略,以降低各种故障情况下数据丢失的可能性,接下来针对几个常见的分布式故障场景,分析HDFS对应的容错策略。

  1. NameNode故障

    NameNode内存中记录了文件系统的元信息,这些元信息一旦丢失,将导致整个文件系统数据不可用。

    HDFS允许为每个 Active NameNode 分配个 StandbyNameNode,以防止单个 NameNode 宕机后导致元信息丢失和整个集群不可访问。

  2. DataNode故障

    每个 DataNode 保存了实际的数据块,这些数据块在其他 DataNode 上存在相同的副本。

    DataNode 能通过心跳机制向 NameNode 汇报状态信息,当某个DataNode 宕机后, NameNode 可在其他节点上重构该 DataNode 上的数据块,以保证每个文件的副本数在正常水平线上。

  3. 数据块损坏

    DataNode 保存数据块时,会同时生成一个校验码。

    当存取数据块时, 如果发现校验码不一致,则认为该数据块已经损坏, NameNode 会通过其他节点上的正常副本重构受损的数据块。

上一篇 下一篇