▉本例选用三台server做实验,采用vmware虚拟三台redhat7.3的server;

   主机名称分别为host01、host02、host03;

   IP地址分别为192.168.30.128、192.168.30.129、192.168.30.130;

   zookeeper安装路径为:/opt/soft/zookeeper-3.4.11,路径不绝对,根据你自己的喜欢安装就好,只要你知道它在哪里就OK,我的zookeeper版本为3.4.11。


▉确保3台虚机均满足如下条件:

   ①3台虚机都是NAT方式上网并且IP地址是静态的;

   ②3台虚机都关闭了防火墙;

   ③3台虚机都安装了zookeeper;

   ④3台虚机都安装了JAVA(JDK);

三台都要改,以host01为例

   首先编辑network配置文件:

[root@host01]#vim /etc/sysconfig/network
   NETWORKING=yes
   HOSTNAME=host1    //后面两台虚机依次为host02、host03

   然后编辑ifcfg=ens33配置文件:

 

[root@host01]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
   ONBOOT=yes
   BOOTPROTO=none
   IPADDR=192.168.30.128    //三台各不一样
   GATEWAY=192.168.30.2    //这个网关是我自己的根据你自己的来
   NETMASK=255.255.255.0
   DNS1=192.168.30.2    //三台均一样并不区分DNS1、DNS2、DNS3

三台都要改,三台都一样

[root@host01]#systemctl disable firewalld    //永久关闭防火墙
   [root@host01]#systemctl status firewalld    //查看防火墙状态


▉修改hosts配置文件,三台都要改,三台都一样,IP地址根据你自己的来


[root@host01]# cd /etc/hosts
 
[root@host01]# vim hosts
 
    host01 192.168.30.128
 
    host02 192.168.30.129
 
    host03 192.168.30.130


▉修改zookeeper权限,三台都要改,三台都一样


[root@host01]# cd /opt/soft
 
[root@host01]# chown -R root:root zookeeper-3.4.11




▉创建zookeeper数据目录、日志目录、ID号,三台都要改,三台ID都不一样,但三台的目录一样


[root@host01]# cd / 
 
[root@host01]# mkdir data
 
 
[root@host01]# cd data
 
 
    [root@host01]# mkdir zoo_data zoo_log
 
[root@host01]# cd zoo_data    
 
    [root@host01]# touch myid
 
[root@host01]# vim myid


    1    //该配置文件只需要写进一个数字1即可,后面的两台分别写2、3




▉修改zookeeper配置文件zoo.cfg,三台都要改,三台都一样


[root@host01]# cd /opt/soft/zookeeper-3.4.11/conf 
 
    [root@host01]# cp zoo_sample.cfg zoo.cfg
 
 
[root@host01]# vim zoo.cfg
 
 
    dataDir=/data/zoo_data 
 
   
    dataLogDir=/data/zoo_log 
 
   
    server.1=192.168.30.128:2888:3888
 
   
    server.2=192.168.30.129:2888:3888
 
   
    server.3=192.168.30.130:2888:3888




▉启动zookeeper,三台必须都启动,不然一会查看状态的时候会显示失败



[root@host01]# cd /opt/soft/zookeeper-3.4.11/bin



[root@host01]# ./skServer.sh start



    如果启动成功,会出现如下提示信息:


 

zookeeper同时支持ipv6 ipv4 zookeeper设置ip_zookeeper






▉查看zookeeper三台主机之间的主从分配状态



[root@host01]# ./skServer.sh status



    如果握手成功,会出现如下提示:



zookeeper同时支持ipv6 ipv4 zookeeper设置ip_zookeeper_02



    具体某台虚机是follower还是leader是由投票机制选举出来的,但是总有一台是leader。









-----------------------------------------------------------------------------------------------



★实事情况是查看三台虚机的服务状态这最后一步会出现各种各样的问题



★具体是什么问题可以通过查看/opt/soft/zookeeper-3.4.11/bin目录下的日志文件zookeeper.out来分析



★一定要确保下面的操作你都做好了



    ①三台虚机防火墙一定要关闭



    ②三台虚机hosts文件一定是配置好的主机名和IP地址对应



    ③三台虚机一定要都安装好了JAVA



-----------------------------------------------------------------------------------------------



♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

如果你保证上面我说的步骤都做好了最后握手还是不能成功,可以用清除数据缓存的方式来解决

[root@host01]#cd /data/zoo_data
[root@host01]#rm -rf zookeeper_server.pid  version-2
[root@host01]#cd zoo.log
[root@host01]#rm -rf version-2

然后重启zookeeper服务,再次查看状态

♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥