Hadoop之HDFS如何保证高可用

HDFS如何保护高可用

将各个角色拆分开来

  1. NameNode
    通过JournalNode和DFSZKFailoverController实现。
  • JournalNode负责主从数据一致;
  • ZKFC负责主从的Failover(通过ssh或shell实现防止脑裂).
  1. JournalNode
    自生也是分布式的,因为有选举机制,所以默认要大于1的奇数个服务器在线。

  2. DFSZKFailoverController(Zookeeper)
    ZKFC是部署在两个NameNode节点上的独立的进程,作用是辅助ZooKeeper做NameNode的健康监控,间接来说就是ZooKeeper的可用性。
  3. 数据本身
    数据在HDFS中默认是存储三份的,而且在不同的DataNode,所以即使只有一台机器存活也能保证数据完整。