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 #删除下面所有节点

浙公网安备 33010602011771号