Zookeeper之入门(原理、基础知识)
Zookeeper介绍
Zookeeper是分布式应用程序的协调服务框架,是Hadoop的重要组件。ZK要解决的问题:
1.分布式环境下的数据一致性。
2.分布式环境下的统一命名服务
3.分布式环境下的配置管理
4.分布式环境下的分布式锁
5.集群管理问题
Zookeeper指令与数据结构
Zk数据结构
1. ZK有一个最开始的节点
2. ZK的节点叫做znode节点
3. 每个znode节点都可存储数据
4. 每个znode节点都可创建自己的子节点
5. 多个znode节点共同形成了znode树
6. Znode树的维系实在内存中,目的是供用户快速的查询
7. 每个znode节点都是一个路径(通过路径来定位这个节点)
8. 每个路径名都是唯一的。
ZK指令
指令 |
示例 |
ls查看指令 |
ls / |
create创建节点指令,注意,在创建节点时,要分配初始数据。 |
create /zk01 hello create /zk02 ‘’ |
get查看节点数据指令 hello 数据 cZxid = 0x2 ctime = Mon May 15 05:58:32 PDT 2017创建节点的时间戳 mZxid = 0x2 mtime = Mon May 15 05:58:32 PDT 2017修改此节点数据的最新时间戳 pZxid = 0x2 cversion = 0 dataVersion = 0数据版本号,每当数据发生编号,版本号递增1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5数据大小 numChildren = 0子节点个数 |
get /zk01 |
set更新节点数据指令(执行后mtime、dataVersion可定会放生变化,dataLength可能会变化) |
set /zk01 hellozk |
delete删除节点 |
delete /zk01 |
create指令补充: 1. 创建子节点 2. Zk节点分四种类型:分别是: 普通持久节点: 普通临时节点:创建此临时节点的客户端失去和zk连接后,此节点消失.zk是通过临时节点监控哪个服务器挂掉的。
顺序持久节点:会根据用户指定的节点路径,自动分配一个递增的顺序号。(顺序节点实现分布式锁的效果,服务器1抢到zk05分配zk050001,服务器2抢到zk05分配zk050002) 顺序临时节点: |
1. create /zk01/node01 hello 2. 2.1.create /zk01 hello 2.2. create –e /zk02 abc 2.4.create –s -e /zk05 abcd zk050000000003 再创建一个就是: zk050000000004 |
命运给予的,无论多少,皆需认真对待。朗如日月,清如水镜
------------------------------------------------------