目录
1,介绍
2,集群搭建
3,快速入门
介绍
Zookeeper 高可用、高性能且一致的开源协调服务,它提供了一项基本服务:统一命名服务、布式协调、存储数据、监听与通知等功能。
zk可以做分布式锁的解决方案,集群leader选举,监控通知,简单数据存储
集群搭建
在hadoop的文章中有一篇专门介绍zookeeper集群搭建的https://www.jianshu.com/p/211157bd073a,这里就不再赘述
快速入门
官网:http://zookeeper.apache.org/
官网上的图说明zk集群:
zk中角色:
leader:负责写操作,负责响应所有对 ZooKeeper 状态变更的请求。它会将每个状态更新请求进行排序和编号
follower:负责处理响应本服务器上的读请求外还要处理leader 的提议,并在 leader 提交该提议时在本地也进行提交
Observer:如果 ZooKeeper 集群的读取负载很高,或者客户端多到跨机房,可以设置一些 observer
服务器,以提高读取的吞吐量,不参与选举
通过zkCli.sh客户端连接上zk,看看zk下面都有什么?
./zkCli.sh -server my06:2181
ls /
[zk: my06:2181(CONNECTED) 1] ls /
[storm, zookeeper, yarn-leader-election, hadoop-ha, hbase]
可以发现根目录下有好多hadoop的一些节点,这些是之前hadoop集群启动的时候加入的
zk的数据结构是树形结构
znode节点类型有四种:持久、临时、持久有序、临时有序
创建一个临时节点:
[zk: my06:2181(CONNECTED) 3] create -e /songlj shuaige
Created /songlj
[zk: my06:2181(CONNECTED) 4] ls /
[storm, zookeeper, yarn-leader-election, hadoop-ha, hbase, songlj]
可以看到已经创建了songlj节点,此时断开连接,在别的节点中就查看不到了
断开之前,查看my07电脑的节点
[zk: my07:2181(CONNECTED) 0] ls /
[storm, zookeeper, yarn-leader-election, hadoop-ha, hbase, songlj]
[zk: my07:2181(CONNECTED) 1]
my06断开连接
[zk: my06:2181(CONNECTED) 5] [root@my06 bin]#
[root@my06 bin]#
再次查看my07
[zk: my07:2181(CONNECTED) 6] ls /
[storm, zookeeper, yarn-leader-election, hadoop-ha, hbase, songlj]
[zk: my07:2181(CONNECTED) 7] ls /
[storm, zookeeper, yarn-leader-election, hadoop-ha, hbase]
可以看出songlj节点消失了,看到这里zk的临时节点就天生可以做集群的监控
望指正,不吝赐教