你将数据数据存储于ZooKeeper上,就意味着你将数据存储于多台server中,因为ZooKeeper实现了数据在集群间的事务性一致;
(1)启动,分别在各个ZooKeeper服务器节点上启动,服务器集群的规模不小于3
zkServer.sh start
(2)查看服务器的属性(leader or follower,通过3888端口选举产生)
zkServer.sh status
命令行操作原语
ZooKeeper 下的路径称为节点,每一个节点(也即路径)对应一个值。
(1)进入命令行模式
zkCli.sh
(2)路径操作:ls (查看)、create(创建)、取节点的值(get)、设置节点的值(set)
- (1)查看
ls / # [zookeeper] ls /zookeeper # [quota] ls /zookeeper/quota # []
(2)创建
create /zch hadoop # 在根目录下创建 zch 节点(路径),并为该节点赋值为 hadoop ls / # [zookeeper, zch]
(3) 取值
get /zch # 会显示该节点的详细信息
(4)一致性
此时如果我们切换该 ZooKeeper 服务器集群内的另一台终端,并在该终端下,查看
/zch
节点的值:get /zch
会输出同样的节点信息。
-(5) 设置节点的值
set /zch hadoops
同样会同步到服务器集群下的其他节点。
ZooKeeper 的节点
Znode有两种类型,短暂的(ephemeral)和持久的(persistent)
Znode的类型在创建时确定并且之后不能再修改
短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点
持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除
Znode有四种形式的目录节点,
- PERSISTENT、
- PERSISTENT_SEQUENTIAL、
- EPHEMERAL、
- EPHEMERAL_SEQUENTIAL