ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、命名服务、分布式同步、组服务等。
Zookeeper的Fast Fail 和 Leader选举特性大大增强了分布式集群的稳定和健壮性,并且解决了Master/Slave模式的单点故障重大隐患,这是越来越多的分布式产品如HBase、Storm(流计算)、S4(流计算)等强依赖Zookeeper的原因。
Zookeeper在分布式集群(Hadoop生态圈)中的地位越来越突出,对分布式应用的开发也提供了极大便利,这是迫切需要深入学习Zookeeper的原因。
学习注意
1.存储数据数据
保存stom集群的全部数据,可监控整个数据变化,整个集群和作业。
轻量级数据库,
文件系统的目录结构,每个路径都有node节点作为唯一标识,可以存储小数据,状态,acl,版本
节点数据变化,触发Watches事件,通知到每个客户端,一次性触发,需设置下一个通知
临时节点不会带子节点。连接断掉会自动消失。
2.不存在单点故障。快速失败模式,短时间内自动修复,提供稳定服务
3.分布式应用的配置管理
4.命名服务
每个节点全局是唯一路径,序列化的节点,默认的命名规范
5.分布式通知和协调
用了Watches机制,节点数据发生变化,通知到其他观察者。实现不同系统对数据变更的实时处理,不同系统对zk同一节点进行注册
6.分布式锁:
用对象锁,控制应用执行顺序。
保证数据强一致性,控制时序
相信每时每刻,zk节点数据对各个客户端一定是相同的
7.分布式队列
先进先出,等队列成员聚齐才开始执行(增加了分布式锁)
课程大纲:
第1讲 .Zookeeper熟悉和用途综述
Zookeeper基础知识、体系结构、数据模型
常见的应用场景
第2讲.Zookeeper集群搭建、命令行Client操作
集群搭建和测试
命令行客户端操作
Stat
第3讲、Watches、Node、API介绍、Java Client开发Watches、Node详解
API介绍
Java Client开发
第4讲、Java Client 进阶练习
进阶练习
授权操作
第5讲、实战案例开发一之配置管理
配置管理的案例开发
第6讲、实战案例开发二分布式锁实现
分布式锁的原理及实现
第7讲、运维指南及注意事项
日常维护注意事项
配置参数详解
4字命令详解
第8讲、运维和监控Web平台搭建和使用
Taokeeper搭建和使用
TaoKeeper提供Web界面,可对Zookeeper集群进行多方面监控,如连接数、Watcher数、集群运行状态、磁盘内存CPU使用率等全方位监控,并提供告警接口。