ZooKeeper 介绍

Posted Steve Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZooKeeper 介绍相关的知识,希望对你有一定的参考价值。

Zookeeper用途场景:

Zookeeper分布式服务框架是Apache Hadoop的一个子项目,主要是用来解决分布式应用经常遇到的一些数据管理问题。如:集群管理,统一命名服务,分布式配置管理,分布式消息队列,分布式说,分布式通知协调等。

越来越多的分布式开始依赖ZK,比如Storm,Hbase等

Zookeeper对分布式开发带来很多遍历,用ZK独有的特性巧妙解决很多难题,很多分布式技术用到Zookeeper特性,如Hbase,火爆的Storm。

Zookeeper体系架构:

数据模型、节点

类似文件系统的目录型结构,同hadoop、HDFS:

Watches

ZK对Node的增删改查都可以除法监听

watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher

watch事件异步发送至观察者

watch是一次性除法的并且在获取watch事件和设置新watch之间有延迟,所以不能可靠的观察到节点的每一次变化

客户端监视一个节点,先获取watch事件,再发现节点的数据变化

watch事件顺序对应于Zookeeper服务所见数据更新的顺序

Zookeeper在Hadoop平台典型应用

Storm集群:Zookeeper作为nimbus(mastter)和supervisor(slave)的中间枢纽,保存Storm集群和作业的所有信息,并负责nimbus和supervisor的全部通信,Fast fill、

Hbase集群:Zookeeper作为协调器,为HBase提供了稳定服务和fall over机制。

应用三大块:

Storm应用开发、Storm集群监控

MapReduce应用开发

Hbase应用开发

流行的应用场景:

分布式配置管理

发布与订阅所谓的配置管理,就是把数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新,例如全局配置信息,地址列表等就会非常适合使用。

Name Service

这个主要是作为分布式命名服务,通过调用zk的create node api,能够很容易常见一个全局唯一的path,这个path可以作为一个名称。

分布式通知协调

zookeeper中特有的watcher注册与异步通知机制,能够很好地实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。

使用方法 通常是不同系统都对ZK上的znode进行watch,监听znode的变化,其中一个系统update了znode,另一个系统受到通知,并协同进行处理

分布式锁

分布式锁,这个主要得益于Zookeeper为我们保证了数据的强一致性

锁服务可以分为两类,一个是保持独占,另一个是控制时序

集群管理

Hbase Master选举是经典的使用场景

分布式队列

一种是常规的先进先出队列,另一种是等到队列成员狙击之后按统一按序执行,对于第二种先进先出队列,增加分布式锁服务控制时序场景

以上是关于ZooKeeper 介绍的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper介绍

zookeeper介绍

Zookeeper——Zookeeper介绍

zookeeper介绍

ZooKeeper 介绍

Zookeeper基础教程:Zookeeper连接使用—zkCli