一、vmware Centos6.5虚拟机准备
1. 使用同一用户learn ,安装三台CentOS6.5系统虚拟机,分别为vm1, vm2, vm3。
2. 通过NAT或者桥接模式分别为vm1,vm2, vm3设置网络。文中采用NAT方式, ip地址分别为:
vm1: 192.168.60.128 vm1.learn.com
vm2: 192.168.60.130 vm2.learn.com
vm2: 192.168.60.131 vm3.learn.com
保证相互之间可以ping通, 且/etc/hosts文件配置各节点host。
3. 为每台机器设置SSH免密登录, 参见:https://blog.csdn.net/zhujq_icode/article/details/82629745
二、安装Zookeeper集群
1. 下载Zookeeper安装包,本文下载的是:zookeeper-3.4.13.tar.gz
2. 解压安装包至安装目录 /home/learn/app/zookeeper/
tar -zxvf zookeeper-3.4.13.tar.gz -C /home/learn/app/zookeeper
3. vm1修改zoo.cfg配置文件, 设置集群节点。(若节点间连接有问题,可将本机的server改成:如vm1的, server.1=0.0.0.0:2888:3888)
dataDir=/home/learn/data/zookeeper/data
dataLogDir=/home/learn/data/zookeeper/logs
server.1=vm1.learn.com:2888:3888
server.2=vm2.learn.com:2888:3888
server.3=vm3.learn.com:2888:3888
4. 复制安装包及配置文件至vm2, vm3机器。
5. 为各个节点设置server id 和zoo.cfg配置的一致, 如server.1=vm1.learn.com:2888:3888,这vm1的zookeeper节点的server id为1。
在dataDir=/home/learn/data/zookeeper/data目录下,生成一个配置文件myid,配置内容即为对应的id值, 如:
//vm1机器
echo 1 > /home/learn/data/zookeeper/data/myid
//vm2机器
echo 2 > /home/learn/data/zookeeper/data/myid
//vm3机器
echo 3 > /home/learn/data/zookeeper/data/myid
6. 启动各个节点
cd /home/learn/app/zookeeper/zookeeper-3.4.13/bin
//启动zookeeper
./zkServer.sh start
//查看启动状态mode: follower 还是 leader
./zkServer.sh status
//停止zookeeper
./zkServer.sh start
7. 观察启动日志
/home/zhujq/app/zookeeper/zookeeper-3.4.13/bin/zookeeper.out
很多错误都可以在此发现并得到解决。
三、Connect Refused 或者 Connect time out
1. 检查是否设置server id, myid配置文件位置,值是否正确。
2. /etc/hosts文件是否正确设置了各节点host。
3. 防火墙是否允许zookeeper端口访问,
//检查防火墙状态
service iptables status
//暂时关闭防火墙, 重启之后,防火墙也会开启
service iptables stop
//启动防火墙
service iptables start
//永久关闭防火墙, 开机不启动防火墙
service iptables stop
chkconfig iptables off
//开机启动防火墙
chkconfig iptables on