Hadoop7days-5 ZooKeeper
Hadoop2.0中通常有两个NameNode,一个处于active状态,对外提供服务;另一个处于standby状态,仅同步active NameNode的状态,当active NameNode宕掉时,可以快速切换。
Zookeeper是Hadoop的分布式协调服务,分布式应用程序可以基于zookeeper实现多种服务,比如同步服务,配置维护和命名服务等。我们以数据同步服务为例:
最上面是一个ZooKeeper集群,它对外提供ZooKeeper服务,为了保证服务的稳定性,ZooKeeper的服务器需要保证多台,且要满足奇数台的要求(因此最少有3台),且必须保证一般以上的机器不宕机时集群才能正常服务(3台最多可宕一台,7台最多可宕3台)。ZooKeeper集群中的机器有1台leader,其余为follower,leader宕掉时,会产生新的leader。
当某个client使server变动某变量后,leader 会检测到server的改变,之后将该变动传送到其他的server,使其他的server也做出相应的改变,并且改变期间,client不能访问该变量。
ZOOKEEPER的功能:
Hadoop2.0,使用Zookeeper的事件处理确保整个集群只有一个活跃的NameNode,存储配置信息等.
HBase,使用Zookeeper的事件处理确保整个集群只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等.