zookeeper安装
所有版本下载地址
https://archive.apache.org/dist/zookeeper/
老版本zookeeper有很多命令不支持,需要安装新版本,但是jdk不是最新的就无法安装最新的zookeeper
1 下载
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
2解压
tar -zxvf zookeeper-3.4.12.tar.gz
3进入解压文件
cd zookeeper-3.4.12/ cd conf/ vim zoo_sample.cfg
可以更改存放的数据文件和日志文件的存储路径
tickTime=2000 dataDir=/home/myname/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.229.160:2888:3888 server.2=192.168.229.161:2888:3888 server.3=192.168.229.162:2888:3888
将zoo_sample.cfg改成zoo.cfg才能正常运行
mv zoo_sample.cfg zoo.cfg
cd ../bin
./zkServer.sh start ../conf/zoo.cfg
启动成功
查看当前节点的状态
./zkServer.sh status
./zkServer.sh stop ../conf/zoo.cfg
./zkServer.sh start ../conf/zoo.cfg
./zkCli.sh
查看当前zookeeper有多少节点
ls /
创建一个znode 节点
create /test1
create /test abc
get /test
持久节点
持久序号节点
临时节点(会随着会话结束 删除节点 10s左右)
create -e 临时节点
create -s 序号节点
------------------------------------------------
修改zoo.cfg 创建集群
su chmod 777 zoo.cfg vim zoo.cfg
在zookeeper下创建两个目录logs和zkdata
zkdata中需要文件myid
vim myid
1
该数字1和conf里面的zoo.cfg里面的集群对应
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataLogDir=/usr/local/zookeeper/logs dataDir=/usr/local/zookeeper/zkdata # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 server.1=192.168.1.7:2888:3888 server.2=192.168.1.11:2888:3888 server.3=192.168.1.20:2888:3888 ~
vi myid
将myid里面改成2
cat myid
当节点宕掉之后会在3888端口进行投票,筛选谁是下一个leader 通信端口为2888
server.4(最大的是leader四个server组成的集群 过半+1 在3和4之间选一个)
scp -r ./zookeeper/ 192.168.1.11:/usr/local/
远程拷贝到另一台linux虚拟机上
scp -r ./zookeeper/ 192.168.1.7:/usr/local/ scp -r ./zookeeper/ 192.168.1.11:/usr/local/
scp -r ./zookeeper/ 192.168.1.20:/usr/local/ scp -r /etc/profire 192.168.1.7:/etc/ scp -r /etc/profire 192.168.1.11:/etc/
scp -r /etc/profire 192.168.1.11:/etc/
----------------------------------------------------------------------------------
环境变量配置
vi /etc/profile
unset i unset -f pathmunge export JAVA_HOME=/usr/java/jdk1.8.0_161 export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.14 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
source /etc/profile
cZxid = 0x2b zookeeper是顺序执行 顺序执行时体现在id身上.这个id在数据的增删改 写操作,给到zookeeper任何节点上的时候 都会递交给leader,leader因为是单机,维护一个单照递增计数器很容易,创建或者删除都有这种事务id c是create
后32位是事务的id
前32位是leader的几元 第几个leader 如果有leader 跟新换代,就会加一,事务id重新开始
修改的事务id
当前节点下创建的最后一个节点号
临时节点也要消耗事务id 的启动一个zkCli.sh 就会同步一次,就会消耗一次事务id
create -s /xxx aaa
-s命令可以规避对同一个对象的设置和读取覆盖的数据,
后面会跟一串递增的数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律