青训营第九课HDFS高可用与高扩展机制|青训营笔记

131 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第9天

课堂内容

元数据服务高可用

  • 高可用需要处理的场景 image.png
  • 高可用的年化计算 image.png image.png MTTR:平均恢复时间
    MTTF:平均修复时间
    MTBF:每次恢复的间隔时间
  • 高可用的形式:热备份,冷备份,人工切换,自动切换
  • NameNode的高可用架构 image.png
    • Active NameNode:提供服务的 NameNode 主节点,生产 editlog。

    • Standby NameNode:不提供服务,起备份作用的 NameNode 备节点,消费 editlog

    • editlog:用户变更操作的记录,具有全局顺序,是 HDFS 的变更日志。

    • ZooKeeper:开源的分布式协调组件,主要功能有节点注册、主节点选举、元数据存储。

    • BookKeeper:开源的日志存储组件,存储 editlog

    • ZKFC:和 ZK、NN 通信,进行 NN 探活和自动主备切换。

    • HA Client:处理 StandbyException,在主备节点间挑选到提供服务的主节点。

主要就是zookeeper,bookkeeper,zkfc这几个部分的功能,如选主,日志,探活等等实现高可用。

  • 高可用的理论基础:状态机,如下图就是一个备份的东西。 image.png
  • namenode操作日志的生产消费:通过日志系统,由active生产standby消费,并且通过生成FSimage和EditLog实现持久化。 image.png
  • namenode的块维护:在高可用的情况下,datanode会向active和standby同时发送信息。但是他们俩的处理有区别,同时还有个content state的状态来处理两者状态的不一致 image.png
  • 分布式协调组件zookeeper:选主,协调,元数据存储 image.png
  • 主备切换server恻:就是中间的红框,来监督active和standby,他们中有问题了就会被红框知道并做出主备切换反应。 image.png
  • 主备切换client侧: image.png
  • bookkeeper

image.png

  • Quorum机制:保证读写一致性 image.png
  • bookkeeper Quorum:只是写 image.png
  • bookkeeper Ensemble:保证写入的数据均衡 image.png

数据存储高可用

  • 单机存储高可用:RAID image.png
  • RAID的方案:条带化,冗余,容错校验 image.png
  • HDFS存储高可用:多副本 image.png
  • Erasure Coding原理:就是提炼数据,分出特征,再讲这组特征排成一组 image.png
  • HDFS的EC:就是把block再切分小块,实现更快,成本更低,恢复更快 image.png
  • 网络架构:TOR是交换机 image.png 放置策略是一个Rack上最多两个,三个副本2+1放置 image.png 同时呢像字节会运用多机房的咐属来应对容灾。

元数据的高扩展性

  • saleup和saleout image.png
  • sale out的常见方案:从node,routing tier,client三方面 image.png
  • 社区解决方案 image.png blockpool:在block上再加一层pool来区分DN和NN的对应关系 image.png viewfs:从client侧的实际应用 image.png NNproxy:从routing tier侧的实际应用,会有更详细的目录树路径
  • 小文件问题
    • 小文件合并任务:计算框架的数据访问模式确定,可以直接将小文件合并成大文件而任务读取不受影响。通过后台运行任务来合并小文件,可以有效缓解小文件问题。通过 MapReduce/Spark 框架,可以利用起大量的机器来进行小文件合并任务。

    • Shuffle service:shuffle 流程的中间文件数是平方级的,shuffle service 将 shuffle 的中间数据存储在独立的服务上,通过聚合后再写成 HDFS 文件,可以有效地缓解中间数据的小文件问题。

image.png

数据存储的高扩展性

  • 超大集群的长尾问题:所以我们要降低长尾数量,避免高延迟

image.png image.png

  • 超大集群的数据可靠性:copyset方案(固定他的数据放置组合,降低数据丢失概率)

image.png

  • 超大集群的数据均衡和迁移:运用迁移工具DistCopy,FastCopy,Balancer

image.png

image.png

image.png