HDFS优化

HDFS优化

1.HDFS存在的问题

  • NameNode:单点故障,难以运用与在线场景

  • NameNode:压力过大,且内存受限,影响系统扩展性.

2.解决问题HA

HDFS优化

  • ActionNameNode(主节点)
    • 接受客户端请求,发送指令
    • 工作
      • 保存元数据信息:关机之后存放在磁盘里…fsimage
      • 保存文件与block的映射
      • 保存block与DN的映射:并不会持久化到磁盘里,需要开机启动汇报
      • 启动时: 接受汇报
      • 运行时: 保存心跳
  • StandbyNameNode
    • 防止出现单点故障
    • 工作
      • 理论上与主节点相同 :切换主备时备用节点的内存状态和主节点的内存状态几乎一致
      • 备节点不发送任何指令 :脑裂
      • 专门的工作
        • 合并fsimage和Edits
        • 当取回的日志达到阈值,开始合并
  • JournalNode
    • 共享日志文件
    • 当主节点产生日志的时候就会发送给QJM集群
    • 每个节点都会接受到日志
    • 为了保证效率:只要超过半数就认为这个数据有效
    • 备NameNode每隔一段时间就会去QJM取回对应的日志
  • FailoverController
    • 监控ANN和SNN的健康状态
    • 对应的线程为ZKFC
    • 当状态发生变化
  • Zookeeper
    • 执行投票
    • 监听ZKFC
  • DateNode
    • 保存数据
    • 同时与ANN和SNN保持心跳
    • 同时向两个NameNode发送汇报

3.Federation (联邦)

  • 水平上对集群进行扩展
  • namenode.namespace管理不同的路径
  • 所有的namenode还是共享所有的DN

pace管理不同的路径

  • 所有的namenode还是共享所有的DN