HDFS 高可用与高扩展性机制分析 | 青训营笔记

78 阅读2分钟

  这是我参与「第四届青训营 」笔记创作活动的的第9天。本篇笔记对于7.31日熊睦老师讲授的 HDFS 高可用与高扩展性机制分析的内容做一个复习总结。


元数据高可用
  • 服务高可用的需求:故障(软硬件/人为)无可避免,灾难(数据中心级别不可用:断电、空调停机、网络故障)时有发生,业务停止损失极大。
  • 高可用的衡量:
    • 服务可用性指标
      • MTTR(mean time to repair):平均修复时间
      • MTTF(mean time to failure):平均失效时间,系统平均能够正常运行多长时间,才发生一次故障。
      • MTBF(mean time between failures):平均故障间隔
    • 可用性年化 = MTBF/( MTBF + MTTR )要达到 99.9% 甚至 99.999%(全年五分钟)
  • 高可用的形式:
    • 服务高可用(热/冷备份)
    • 故障恢复操作(人工/自动切换,高可用需要系统自动决策),HDFS 中 NameNode 作为中心化元数据管理节点,容易成为故障单点

  • NameNode 高可用架构
    • Active NameNode:主节点,处理 client请求,生产日志 edit log,存到 BooKeeper
    • Standby NameNode:备节点,消费日志,保持一致性、
    • ZooKeeper:为自动选主提供统一的协调服务
    • ZKFC:NameNode 探活,触发主备切换
    • HA Client:提供了自动切换的客户端 image.png 图源:字节跳动大数据青训营

    • 状态机复制和日志
      • 组件:状态机及其副本、变更日志、共识协议
    • NameNode 操作日志的生产消费:目录树和文件信息的更新,不同系统可能逻辑和物理日志保存方式不同
    • NameNode 块状态维护
      • Active 接收心跳,发起变更;Standby 只接收,不变更
      • Content State 状态:主备切换后需要避免 DataNode 的不确定状态(比如做删除状态操作),所有 DN 做完一次全量的块上报后解除,此时 NameNode 获得了全部信息。

  • 分布式协调组件ZooKeeper: (待补充)

数据高可用

元数据拓展性

数据拓展性