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命令可以规避对同一个对象的设置和读取覆盖的数据,

后面会跟一串递增的数字

 

 

 

posted @   花心大萝卜li  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示