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 介绍的主要内容,如果未能解决你的问题,请参考以下文章