准备:修改hosts文件(三台虚拟机)
vim /etc/hosts
192.168.59.130 centos.01
192.168.59.131 centos.02
192.168.59.132 centos.03
安装前要安装JDK
1、解压压缩包 ,并移动到opt文件夹下
tar -zxvf zookeeper-3.4.5-cdh5.10.0.tar.gz
mv zookeeper-3.4.5.tar.gz /opt/zookeeper
2、修改配置文件:
修改datafile (不能放在临时文件夹中,系统重启临时文件夹清空,需新建data文件夹)
加入集群配置
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加内容:
dataDir=/opt/zookeeper/data (不能放在临时文件夹中,需新建data文件夹)
dataLogDir=/opt/zookeeper/log(新建log文件夹,可不要!!!)
server.1=centos01:2888:3888 (主机名, 心跳端口、数据端口)
server.2=centos02:2888:3888(都是默认端口)
server.3=centos03:2888:3888(2888是leader和follow之间通信,3888是投票选举时用的端口)
创建文件夹
mkdir /usr/local/zookeeper/data
mkdir /usr/local/zookeeper/log
3、在data文件夹中创建myid文件,内容为不能一致
cd data
vi myid
添加内容:1
数字与conf配置的server.1,后面数字保持一致
4、复制其他服务器中修改myid,
5、启动和查看状态 每台都需要单独启动
./zkService.sh start
./zkService.sh status
注意:启动有问题可以查看myid是否正确,和端口是否启用
日志中出现
java.net.ConnectException: Connection refused (Connection refused)
是由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。通过后面部分可以看到,集群在选出一个Leader后,最后稳定了。
其他结点可能也出现类似问题,属于正常。