一、概述
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度理解是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。
Zookeeper的两项核心功能:存储数据,通知机制。
hdfs已经存储了数据,那么Zookeeper不会存储全部数据,存储的一般是一些元信息或是一些配置信息,这些信息所占内存很小。
不同框架之间协调或者是框架内部需要协调,都可以使用Zookeeper,一般开发人员会直接和框架之间产生联系,不会和Zookeeper发生关系,Zookeeper对于开发人员来说是不可改制。一般我们布置好Zookeeper,启动就成功了,之后告诉这些框架Zookeeper在哪里,在大数据的应用中,Zookeeper常作为一个背景。
Zookeeper特点:
- 一个leader,多个follower组成的集群;
- 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务;
- 全局数据一致:每个server保存一份相同的数据副本,client无论连接到那个server,数据都是一致的;
- 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行;
- 数据更新的原子性,一个更新要么一起成功,要不一起失败ÿ