zoukankan      html  css  js  c++  java
  • HDFS 的可靠性

    HDFS 的可靠性主要有一下几点:

    • 冗余副本策略

    • 机架策略

    • 心跳机制

    • 安全模式

    • 效验和

    • 回收站

    • 元数据保护

    • 快照机制

     

    1.冗余副本策略

      可以在hdfs-site.xml中设置复制因子指定副本数量

      所有数据块都可副本

      DataNode启动时,遍历本地文件系统,产生一份HDFS数据块和本地文件的对应关系列表(blockreport)汇报给Namenode

    2.机架策略

      HDFS的"机架感知",通过节点之间发送一个数据包,来感应它们是否在同一个机架

      一般在本机架放一个副本,在其他机架再存放一个副本,这样可以防止机架失效时丢失数据,也可以提高带宽利用率

    3.心跳机制

      NameNode 周期性从DataNode接受心跳信息和块报告

      NameNode 根据快报告验证元数据

      没有按时发送心跳的DataNode会被标记为宕机,不会再给他任何I/O请求

      如果DataNode失效造成副本数量下降,并且低于预先设定的值,NameNode 会检测出这些数据库,并在合适的时机从新复制

      引发重新复制的原因还包括数据副本本身损坏,磁盘错误,复制因子被增大等

    4.安全模式

      NameNode 启动时会先经过一个 "安全模式" 阶段

      安全模式阶段不会产生数据写

      在此阶段NameNode收集各个DataNode 的报告, 当数据块达到最小副本数以上时,会被认为是"安全"的

      在一定比例(可设置) 的数据块被确定为"安全" 后 ,在过若干时间,安全模式结束

      当检测到副本数不足的数据块是,该块会被复制,直到达到最小副本数

      

    5.效验和  

      在文件创立时,每个数据块都产生效验和

      效验和会作为单独一个隐藏文件保存在命名空间下

      客户端获取数据时可以检查效验和是否相同,从而发现数据块是否损坏

      如果正在读取的数据块损坏,则可以继续读取其他副本

    6.回收站

      删除文件时,其实是放入回收站/trash

      回收站里的文件是可以快速恢复的

      可以设置一个时间值,当回收站里文件的存放时间超过了这个值,就被彻底删除,并且释放占用的数据块

    7.元数据保护

      映像文件和事物日志是NameNode 的核心数据.可以配置为拥有多个副本

      副本会降低NameNode 的处理速度,但增加安全性

      NameNode依然是单点,如果发生故障要手工切换

    8.快照机制

      待实现.

  • 相关阅读:
    (55)ElasticSearch之使用scroll滚动技术实现大数据量搜锁
    (54)ElasticSearch之DocValues解析
    (53)ElasticSearch之如何计算相关度分数
    HDU
    POJ3311 Hie with the Pie
    luoguP2768: 珍珠项链(矩阵乘法优化DP)
    luoguU60884 【模板】动态点分治套线段树
    最小圆覆盖(洛谷 P1742 增量法)
    CodeForces
    HDU
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3963156.html
Copyright © 2011-2022 走看看