Zookeeper(一)

 一、概述

1. Zookeeper是Yahoo (雅虎) 开发后来贡献给了Apache的一套用于分布式管理和协调的框架.

2. Zookeeper本身仿照Google的《The Chubby Lock》设计实现的.

3. Zookeeper提供了中心化的服务: 包括:统一的配置、统一的命名、提供分布式锁以及提供组服务.

二、安装

1. 单机模式: 在一台机器上安装框架,往往只能启动框架的部分功能.

2. 伪分布式: 也是在一台机器上安装框架,利用了多线程来模拟集群环境,能够启动框架的大部分功能,甚至是全部功能.

3. 完全分布式: 在集群(多台服务器)启动框架,能够启动框架的全部功能.

三、伪分布式安装

1. 关闭的防火墙

2. 临时关闭防火墙: systemctl stop firewalld

3. 永久关闭防火墙: systemctl disable firewalld

4. 下载安装JDK

     a.   wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/jdk-8u181-linux-x64.tar.gz

5. 修改jdk的环境变量

6. 下载或者上传Zookeeper的安装包

     a.   wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/apache-zookeeper-3.5.7-bin.tar.gz

7. 解压Zookeeper的安装包: tar -xvf zookeeper-3.5.7

8. 进入Zookeeper的安装目录下的子目录conf目录中: cd zookeeper-3.5.7/conf

9. 将conf目录下的zoo_sample.cfg文件复制为zoo.cfg.Zookeeper在启动的时候会自动寻找zoo.cfg,根据其中的配置来启动服务: cp zoo_sample.cfg zoo.cfg

10. 编辑zoo.cfg文件: vim zoo.cfg

11. 修改其中的属性dataDir,指定数据的存储目录: dataDir=/home/software/zookeeper-3.5.7/tmp

12. 保存并且关闭zoo.cfg

13. 进入Zookeeper的安装目录下的子目录bin目录中: cd ../bin

14. 执行zkServer.sh文件,来启动Zookeeper服务器端: sh zkServer.sh start

15. 执行zkCli.sh文件,来启动进入Zookeeper客户端: sh zkCli.sh

四、特点

1. Zookeeper底层是一个树状结构,根节点是/

2. Zookeeper中每一个节点称之为Znode节点,因此这棵树称之为Znode树

3. Zookeeper自带了一个子节点/zookeeper

4. Zookeeper在创建节点的时候可以携带数据也可以不携带(早版本的zookeeper中,创建节点必须携带数据),数据可以是对节点的描述,或者可以是一些配置信息

5. 在Zookeeper中不存在相对路径,所有的路径都必须从根节点开始计算

6. Zookeeper会将携带的数据存储在内存以及磁盘中

7. Zookeeper中数据的存储位置由dataDir属性决定,如果不指定默认在/tmp

8. 在Zookeeper中会将每一个写操作(创建,修改,删除)看成一个事务,并且会给这个事务分配一个全局递增的事务id,这个编号就是Zxid

9. 其他命令:

    1.  create -e /video   --创建临时节点video

    2.  create -s /txt        --表示创建的是持久顺序节点

    3.  create -e -s /txt    --表示创建一个临时顺序节点

10. 临时节点不能挂载子节点;持久节点可以挂载子节点

11. 在Zookeeper中不能存在同名节点.

五、命令

命令解释
ls /查看根节点的子节点
create /video创建节点
delete /book删除节点
rmr /video递归删除节点
get /aaa获取节点数据
set /aaa修改节点数据

 六、 节点信息

cZxid = 节点的创建的事务id

ctime = 节点的创建时间

mZxid = 节点的数据修改的事务id

mtime = 节点的数据修改的时间

pZxid = 子节点个数变化的事务id

cversion = 子节点变化的次数

dataVersion = 节点的数据变化次数

aclVersion = 节点的额权限策略变化的次数

ephmeralOwner = 如果是持久节点,则此值为0,如果是临时节点,则此值为sessionid

dataLength = 数据的字节个数

numChildren = 子节点的个数

七、 节点类型

持久节点临时节点
非顺序节点PersistentEphemeral
顺序节点Persistent_SequentialEphemeral_Sequential

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿码德乌斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值