Hadoop之HDFS如何保证高可用
HDFS如何保护高可用
将各个角色拆分开来
- NameNode
通过JournalNode和DFSZKFailoverController实现。
- JournalNode负责主从数据一致;
- ZKFC负责主从的Failover(通过ssh或shell实现防止脑裂).
JournalNode
自生也是分布式的,因为有选举机制,所以默认要大于1的奇数个服务器在线。- DFSZKFailoverController(Zookeeper)
ZKFC是部署在两个NameNode节点上的独立的进程,作用是辅助ZooKeeper做NameNode的健康监控,间接来说就是ZooKeeper的可用性。 数据本身
数据在HDFS中默认是存储三份的,而且在不同的DataNode,所以即使只有一台机器存活也能保证数据完整。