1、 下载zookeeper
1.1 下载地址 Apache Downloads
1.1.1 解压 tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
2、 创建用于存放数据的文件夹data和传输数据的日志文件
2.1
mkdir data1 # data1全路径:/home/server/zookeeper/data1
mkdir data2
mkdir datalog1 #datalog1全路径 /home/server/zookeeper/datalog1
mkdir datalog2
2.2 修改conf中的配置文件
mv zoo_sample.cfg zoo1.cfg
cp zoo1.cfg zoo2cfg
2.3 vim zoo1.cfg
修改zoo1.cfg 中的dataDir=/home/server/zookeeper/data1
#session的会话时间单位毫秒ms
tickTime=2000
#服务器启动以后,master和slave通讯时间
initLimit=10
#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5
dataLogDir=/home/server/zookeeper/datalog1
clientPort=2181#默认2181,可以修改为其他端口
#192.168.0.103可以在不同的服务器上ip,2888是数据同步和消息传递端口,3888是选举端口
server.1=192.168.0.103:2888:3888
2.4 vim zoo2.cfg
修改zoo1cfg 中的dataDir=/home/server/zookeeper/data2
#session的会话时间单位毫秒ms
tickTime=2000
#服务器启动以后,master和slave通讯时间
initLimit=10
#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5
dataLogDir=/home/server/zookeeper/datalog2
clientPort=2182默认2182,可以修改为其他端口
#192.168.0.103可以在不同的服务器上ip,2888是数据同步和消息传递端口,3888是选举端口
server.1=192.168.0.103:2888:3888
3、 启动 cd bin
3.1 ./zkServer.sh start ../conf/zoo1.cfg
3.2 ./zkServer.sh start ../conf/zoo2.cfg
4、停止服务
./zkServer.sh stop
5、 log中的启动日志
5.1
java.io.IOException: Len error. A message from /10.128.151.5:36498 with advertised length of 16777216 is either a malformed
原因分析
客户端发送的包太大,超过jute.maxbuffer的设置,默认大小为1048575。
解决方法
修改jute.maxbuffer的配置,设置成50M
bin/zkServer.sh
JVMFLAGS="$JVMFLAGS -Djute.maxbuffer=50000000"
5.2
启动报错ZooKeeper JMX enabled by default
在每个存放数据的文件夹data中必须有一个myid文件 文件内容是一个唯一的数字,每个myid文件中的数字不重复
没有myid文件必须创建一个
vim myid
5.3 org.apache.zookeeper.server.NIOServerCnxn.readLength
Unable to read additional data from server sessionid 0x0, likely server has closed socket
出现这个的原因可能是conf/zoo.cnf配置文件中当只有一台zookeeper时,server.num=ip:port1:port2只需要配置一个,当有多个时,zookeeper的选举机制会导致会报错,使zookeeper无法启动(参考: (7条消息) Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing s_CoderMurphy的博客-CSDN博客)
6、 实际操作
6.1 登录zookeeper 客户端
6.1.1 可以服务器直接运行zkCli.sh 进入当前服务器中搭建的zookeeper
6.1.2 或是zkCli.sh -server 192.168.192.128:2181 进入远程客户端
6.1.3 退出
6.1.3.1 可以直接ctrl+c
6.1.3.2 输入quit,按回车
6.2 创建并获取文字
6.3 修改
set /first “I am 1”
6.4