Zookeeper背景
单节点的系统是不存在不一致情况的,分布式系统会出现不一致情况。在大规模集群中,各个节点在应用执行时会出现各种情况,造成在执行一个任务的时候,有些成功了,有些失败了,这样就出现了不一致的情况。比如A,B,C三个节点都存储了TEST=10,一个应用更新TEST=20,A和C成功了,B没成功,那么A和C认为TEST=20,而B认为TEST=10,这就出现了不一致情况。
Zookeeper是Google Chubby的开源实现,解决分布式集群中应用系统的一致性问题,类似于文件系统的目录节点树方式的数据存储,Hadoop中使用Zookeeper的系统有Yarn、HDFS、HBase和Kafka。
Zookeeper数据模型
类似于一个标准的文件系统,每个节点为一个Znode,每个 Znode 可以存储数据。Znode 可以被监控,一旦变化可以通知设置监控的客户端,包括存储的数据的修改和子节点目录的变化。
Znode可以类比文件,Znode类型包括永久节点、临时节点和顺序节点:
1)永久节点:永久节点建完以后永远存在,除非把它删除