一.为什么需要ZooKeeper
- 自动故障转移需要一种机制使Standby NameNode能检测到Active NameNode的死亡,如果Standby NameNode不止一个,还要有一种选举机制,在他们中选出一个作为Active NameNode。要完成这些动作,需要借助一个软件:ZooKeeper
- 自动故障转移要借助ZooKeeper实现Active NameNode的生存状态监视和Active NameNode选举
二.ZooKeeper
ZooKeeper是一个分布式软件,主要作为其他分布式系统的辅助协调工具,协调各节点间如何相互配合。它为其他分布式系统提供了很多基础功能,其中最基本的功能就是数据存储。ZooKeeper可以存储小数据,其组织形式为树形结构,与文件系统类似
三.ZooKeeper的选举
- 如果只有两个NameNode,Active死亡时,Standby自然成为Active
- 如果有多个NameNode,HDFS会采用选举的解决方式。当Active死亡时,ZooKeeper取得一个同步锁,一旦有NameNode得到它,其他NameNode便不能再得到,于是获得同步锁者成为Active,其他节点继续做Standby