1.准备
-
1.1 三台centos
-
1.2 下载zookeeper压缩包
wget https://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
解压 : tar -zxvf zookeeper-3.4.14.tar.gz
2.配置server信息
2.1在解压后的zookeeper目录下的conf文件夹中找到zoo_sample.cfg文件,复制一份为zoo.cfg文件,修改zoo.cfg文件,改好后复制到其他两台虚拟机上
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/root/package/zookeeper-3.4.14/data
dataLogDir=/home/xtt/logfile
#server
server.1=192.168.246.111:2881:2880
server.2=192.168.246.112:2884:2880
server.3=192.168.246.113:2885:2880
clientPort=2181
server.A=B:C:D --A :服务器编号,B:IP ,C:这个服务器与leader交换信息的端口号, D:leader挂了以后,
其他的服务器进行通讯选举leader 的端口号。
tickTime: 每次心跳间隔多久
initLimit: zookeeper服务器集群中连接到leader服务器的follower服务器初始化连接时最长忍受多少个心跳间隔数
sysLimit:这个配置项Leader 与follower之间发送消息,请求与应答时间最长不能超过多少个心跳间隔数,总时长
就是2000*2=4s
- 2.2 在解压后的zookeeper目录中创建data目录,这个data目录就是zoo.cfg中的dataDir目录,创建myid文 件,在文件中输入server的编号 ,zoo.cfg文件中的server.A 中的A是几 myid中就写几。
3.启动
在解压后的zookeeper目录的bin目录找到zkServer.sh文件 (zookeeper的启动文件),
启动命令:
zkServer.sh start
报错:
zookeeper没有启动
查看日志 zookeeper.out发现:
[root@lhl bin]# cat zookeeper.out
nohup: 无法运行命令"java": 没有那个文件或目录
原因是没有安装JDK zookeeper 使用java语言写的 需要jre,安装JDK 可以参考:https://blog.csdn.net/weixin_42009082/article/details/100116543
JDK安装完成后就不会出现这个问题了。这时再次启动,像下图这样 说明启动成功。