Zookeeper
每一个专业的技术总可以在生活中找到相应的实例,就比如说zookeeper,攘其外必先安其内就很好的解释了zookeeper,Hadoop集群的组件中的很多在学习的时候都会觉得每一个都不稳定,都会出现这样那样的问题,会常常听到的一个词语就是高可用,在zookeeper的官方定义的时候在集群出现故障到解决故障正常执行的间隔时间小于200ms,在我们看来就是整个集群一直可用的错觉
我们以HDFS为例子先解释一下zookeeper,在开机时,两个namenode只有一个处于存活状态,每一个namenode伴随着有一个zkfc存在,zkfc一边连接namenode,另一边是zookeeper集群,当开机后,zkfc会争先去zookeeper中创建一个节点,谁先创建就可以启动并创建一个节点进行监控、注册等,节点的变化会产生一个事件,当一个namenode出现异常挂掉之后会产生一个事件,事件会向节点去注册,然后节点会回调存活的namenode并启动,挂掉的namenode处于等待状态,所以说zookeeper就是一个协调服务
Zookeeper的构成
领导者(leader)进行投票的发起和决议,更新系统状态
学习者
(leaener)
跟随者
(follower)
接受客户端的请求并返回结果,选举过程中参与投票
观察者
(observer)
接收客户端的连接,将写请求转发给leader节点,不参与投票,只同步leader的状态
客户端(Client)请求发