Zookeeper基础概念及基本命令简介

关于Zookeeper需要了解的核心概念及常用命令
在分布式系统构建的集群中,每台机器都有自己的角色定位,其中最为典型的就是Master/Slave模式
Master:提供写操作服务
Slave:通过异步复制的机制获取新数据并提供读服务
Zookeeper中引入了三种角色:Leader、Follower、Observer
Zookeeper通过选举选定一台机器为Leader,这台机器为客户提供读写服务
 
Session会话机制
当客户端与服务器端成功建立连接后,session会话会随之建立,同时这个时候会生成一个全局的SessionID。在Zookeeper中,一个客户端连接指的是客户端和服务器之间的一个TCP长连接。
Zookeeper对外服务端口默认是2181,当客户端启动时,新建立的TCP连接也将第一次启动,它可以通过心跳检测与服务器保持有效会话,同时它还会向Zookeeper发送请求并接收响应,另外还可以接收来自服务器的Watch事件通知。
Session中的SessionTimeout值用来设置客户端的超时时间,当出现故障又想保持之间创建的会话,则需要在SessionTimeout规定的超时时间范围内重新连接到集群上的任意一台服务器
 
Zookeeper中数据节点
    Zookeeper中的节点指的是数据模型中数据单元,也叫做数据节点。
    数据模型是以树的格式进行存储的,并通过/来进行路径的分割,分割后的每一个Znode都会保存自己的数据内容,同时也会保存一系列的属性值
    Zookeeper中的每一个Znode都会对应一个叫做Stat的数据结构。Stat记录了三个数据版本(version[当前Znode版本]、cversion[子节点版本]、aversion[ACL版本])
    当用户在Zookeeper中注册了一些Watcher(时间监听器)后,在一些特定的事件触发的情况下,Zookeeper会把事件通知发送到感兴趣的客户端上
 
Zookeeper的权限控制策略:
    采用了ACL(Access Control Lists)策略
    定义了5种权限
  1. CREATE:创建子节点的权限
  2. READ:获取节点数据和子节点的权限
  3. WRITE:更新节点数据的权限
  4. DELETE:删除子节点的权限
  5. ADMIN:设置节点ACL的权限
 
关于Zookeeper的配置文件说明:zoo.cfg
    tickTime:指定了ZooKeeper中的基本时间单元
    dataDir:指定存储持久数据的本地位置
    ClientPort:监听客户端连接的端口
    initLimit:设定所有跟随者与节点进行连接并同步的时间范围,当在设定的时间段内半数以上的跟随者未完成同步,则会进行一次Leader选举
    SyncLimit:设定允许Flower与Leader进行同步的时间
    server.1……:分别代表了节点的IP地址(如果配置了hosts可以使用置的名称)
 
Zookeeper环境变量的配置
    环境变量在.bash_profile中进行配置
    先确定Zookeeper的安装路径(如:/root/software/zookeeper-3.4.14)
    export ZOOKEEPER_HOME=/root/software/zookeeper-3.4.14
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
    更新完.bash_profile后执行命令 source .bash_profile 使配置的环境生效
    使用命令:zkServer.sh status    可以查看当前机器下的状态
    
Zookeeper中常用命令
  1. zkServer.sh start        启动ZooKeeper服务
  2. zkServer.sh status      查看Zookeeper服务状态
  1. zkServer.sh stop        停止Zookeeper服务
  2. zkServer.sh restart     重启Zookeeper服务
 
客户端连接Zookeeper的相关操作
    客户端需要连接ZooKeeper可以使用zkCli.sh命令
    命令格式:zkCli.sh -server IP:port
    如:zkCli.sh -server node1:2181
    查看ZooKeeper常用命令:当连接上去后可以输入help查看有哪些命令
    connect命令:连接ZooKeeper服务器端,如:connect node2:2181
    ls命令:列出对应目录下的文件,是必须以/开头的
    create命令:创建节点 如:create /mynode1 content1
    get命令:获取数据与信息,如:get /mynode1
    set命令:修改节点的内容,如:set /mynode1 content2  (注意:修改完数据后它的内容中有一个dataVersion会自增1)
    delete命令:删除节点,如:delete /mynode(注意:如果节点下存在子节点则需要先删除子节点)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值