ZK笔记

1.官网下载地址

https://zookeeper.apache.org/

https://archive.apache.org/dist/zookeeper/

2.安装步骤

1.安装jdk

2.解压压缩包

tar -xf  apache-zookeeper-3.5.7-bin.tar.gz -C  /tol/app

mv apache-zookeeper-3.5.7-bin   zookeeper-3.5.7

3.修改配置

mv zoo_sample.cfg     zoo.cfg

dataDir=/tol/app/zookeeper-3.5.7/zkData   #修改存储路径

在zkData目录下创建一个my.id文件,写上IP地址最后位,比如,102,写上2就行。

并在配置文件最下面增加如下配置:

server.2 = hadoop102:2888:3888

server.3 = hadoop103:2888:3888

server.4 = hadoop104:2888:3888

A=B:C:D

A是一个数字,表示这个是第几号服务器

B是这个服务器的地址

C是这个服务器Follower与集群中的leader服务器交换信息的端口

D是万一Leader需要一个端口重新进行选举,该端口是执行选举时服务器互相通讯的端口

4.启动服务端

/tol/app/zookeeper-3.5.7/bin/zkServer.sh start

/tol/app/zookeeper-3.5.7/bin/zkServer.sh status   查看状态

mode:standalone  本地模式,leader,follower

/tol/app/zookeeper-3.5.7/bin/zkCli.sh  -server  hadoop102:2181   #启动客户端

其他几台节点一样配置,修改my.id文件内容

5.配置详解(5大参数)

tickTime=2000   #通讯心跳时间,服务器与客户端或服务器与服务器心跳时间

initLimit=10  #LF初始通讯时间  Leader和Flower初始连接时能容忍最多的心跳数(tickTime的数量)

syncLimit=5 #Leader和Flower之间通讯时,如果超过syncLimit*tickTime,Leader认为Flower死掉,从服务器列表中删除Flower

dataDir:/tol/app/zk/zkData   #保存zk中的数据

clientPort:2181   #客户端连接端口,一般不修改

6.选举机制

每一台机器启动都会先投自己一票,然后交换信息,再把选票投给myId大的机器,一旦超过半数,由looking状态变成leader状态,确定了Leader后,再有机器启动,也不会更改Leader了,除非Leader主动挂掉。

当有一台挂掉时,当Leader存在,会被告知存在,该机器会和Leader建立连接

当Leader确实不存在时,比较分别比较EPOCH(每个Leader时期的代号),ZXID(事物ID),SID(服务器ID),大着胜出。

 7.客户端节点

永久节点:有序号,无序号

ls  /  查看当前节点

create  /sanguo "diaochan"   #创建三国的节点,描述为diaochan

create /sanguo/shuguo  "liubei"

ls   /sanguo  #查看三国节点下的子节点

get  -s  /sanguo   获取节点的值和信息描述,diaochan

create  -s /sanguo/weiguo/zhangliao  #创建带序号的节点

短暂节点:有序号,无序号

create -e /sanguo/wuguo  “zhouyu” #创建临时节点

create -e  -s /sanguo/wuguo  "zhouyu"  #创建临时并带序号的节点

set /sanguo/weiguo "simayi"  #修改节点的值

get  -w  /sanguo   #注册一次监听,只收到一次变化

delete  /sanguo/jin    #删除节点

deleteall  /sanguo   #删除下面所有节点

posted @ 2025-11-07 21:25  liumj  阅读(6)  评论(0)    收藏  举报