0.修改主机名
sudo hostnamectl set-hostname <newhostname>
更多方法参考https://blog.csdn.net/u013991521/article/details/80522269
第一台机器:master
第二台机器:slave1
第三台机器:slave2
1.配置映射文件(三台机器都要配置)
vim /etc/hosts
(ip地址 主机名)
三台机器一样的修改
2.下载zookeeper,解压到zookeeper目录下
tar -zxvf zookeeper-3.5.4-beta.tar.gz
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.4-beta/
3.将conf目录下的zoo_sample.cfg文件修改名字为zoo.cfg(三台机器一样)
4.修改zoo.cfg文件 vi zoo.cfg
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址(这里由于我们已经在准备工作中设置了主机名分别为master,slave1,slave2,就写的是主机名);C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
-----------------------------------------------------------------------------------------------
(data目录和dataLog目录不是默认有的,需要自己建)
5.在data目录(上面zoo.cfg中配置的dataDir)下建myid,myid文件中只写入当前server节点的ID标识:(当前为server.1,则myid文件内容为1)
vi myid(创建并修改myid文件)
--------------------------------------------------------------------------------------------
6.将zoo.cfg复制到其他机器上
scp [-P 22] zoo.cfg [email protected]:/usr/local/java/zookeeper/conf/
(scp [-P 22] 要拷贝的文件 另一台机器的目录)
7.zookeeper启动之前要先关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
8.在bin目录下启动zookeeper并查看其状态
启动zookeeper ./zkServer.sh start
查看状态 ./zkServer.sh status
停止服务 ./zkServer.sh stop
通过查看状态可以发现是一个leader,两个follower
9.如果遇到Error contacting service.It is probably not running.参考以下解决方案