准备工作:
已装好单机 zookeeper的三台机器:
192.168.0.164,192.168.0.166,192.168.0.184
Zookeeper 的集群搭建很简单,只要在配置好的单机zookeeper基础上修改两个地方即可,
一个是配置文件zoo.cfg,另一个是创建myid文件。集群示图如下:
详细步骤如下:(以server 2 为例,ip :192.168.0.166 , myid :2)
1. 关闭zookeeper(如果zookeeper在运行,没有跳到第二步)
查看zookeeper进程:
ps -ef | grep zookeeper
进程id为3085,杀死该进程:
Kill -s 9 3085
或者 在zookeeper安装包的bin目录下:
sh zkServer.sh stop
查看确认zookeeper已关闭:
ps -ef | grep zookeeper
2. 修改配置文件
修改conf目录下zoo.cfg文件
dataDir : 数据文件目录
dataLogDir : 日志打印文件目录
clientPort = 2181 供客户端注册发现服务用
2888:集群中zookeeper之间通信用
3888:选举lead时用
配置zookeeper集群,三台机器:
server.1 = 192.168.0.164:2888:3888
server.2 = 192.168.0.166:2888:3888
server.3 = 192.168.0.184:2888:3888
(为了避免混乱,server根据ip从小到大按顺序排列)
3. 创建myid
在zookeeper安装目录下,进入data文件夹中,创建myid文件(没有后缀):
vi myid
Esc +:+ wq
保存退出myid文件
(PS:如果三台虚拟机只有一台装了zookeeper,可以配置好后通过远程拷贝到其他两台:
scp -r /usr/local/zookeeper-3.5.4-beta 192.168.0.184:/usr/local
scp -r /usr/local/zookeeper-3.5.4-beta 192.168.0.164:/usr/local
三台机器zoo.cfg都一样,只要修改对应的myid值即可。
Zookeeper是java写的,需要运行在java环境之上,需装jdk)
即:
Ip 192.168.0.164 机器为server 1 对应的myid 为 1
IP 192.168.0.166 机器为server 2 对应的myid 为 2
IP 192.168.0.184 机器为server 3 对应的myid 为 3
4. 启动zookeeper
分别进入到三台机器zookeeper安装目录bin中,通过命令:
sh zkServer.sh start
启动zookeeper
OK,确保三台机器zookeeper都能启动成功。之后,zookeeper集群会选出一个leader,其余为follower。
5. 查看状态
同样,在安装目录bin下, 通过命令
sh zkServer.sh status
查看集群状态
即 166和184 为follower ,164为leader,表示集群搭建成功。
注意的坑:
若单台zookeeper都能启动成功,而没有通信成功,没有leader和follower,则可能是端口的原因:
a. 端口是否被占用
b. 防火墙是否放行
c. 更多问题可以通过日志文件查看