1.1 服务器列表

  服务器名称 服务器地址 服务器端口

  master 192.168.145.180 2181

  slave1 192.168.145.181 2181

  slave2 192.168.145.182 2181

1.2 jdk安装

  1)使用winscp连接192.168.198.180的22端口。输入用户名:root,密码:******

  2)上传jdk1.8.0_181.zip到home目录

  3)使用XshellPortable连接192.168.198.180的22端口。输入用户名:root,密码:******

  4)关闭防火墙
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    vi /etc/selinux/config
    将SELINUX=enforcing改为SELINUX=disabled

  5)cd /home

  6)unzip -d /home/jdk1.8.0_181 jdk1.8.0_181.zip

  7)chmod -R 777 jdk1.8.0_181

  8)vi /etc/profile

  9)在 profile 最后位置添加如下命令

    export JAVA_HOME=/home/jdk1.8.0_181

    export JAVA_BIN=/home/jdk1.8.0_181/bin

    export PATH=zookeeper 加用户 zookeeper用户名密码_zookeeper 加用户JAVA_HOME/bin

    export CLASSPATH=.:$JAVA_HOME/lib/

  10)更改完成之后按下键盘Esc键退出编辑,之后输入:wq回车退出并保存

  11)source /etc/profile

  12)java -version

  如果出现下图:

zookeeper 加用户 zookeeper用户名密码_java_02


  则要卸载openjdk,卸载步骤:

  13)rpm -qa|grep java

zookeeper 加用户 zookeeper用户名密码_linux_03

对以上内容进行卸载,命令如下:

  1.rpm -e --nodeps tzdata-java-2017b-1.el7.noarch

  2.rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

  3.rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

  4.rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_6

  5.source /etc/profile

  6.java -version

  出现如下图为正常:

zookeeper 加用户 zookeeper用户名密码_zookeeper_04

14)用以上步骤分别安装其他两台服务器

1.3 安装zookeeper

  1)使用winscp连接192.168.198.62的180端口。输入用户名:root,密码:******

  2)上传zookeeper-3.4.9.tar.gz到data目录

  3)使用XshellPortable连接192.168.198.180的22端口。输入用户名:root,密码:******

  4)cd /home

  5)tar -zxvf zookeeper-3.4.9.tar.gz

  6)cd /home/zookeeper-3.4.9/

  7)mkdir data

  8)chmod 777 data

  9)cd /home/zookeeper-3.4.9/conf/

  10)cp zoo_sample.cfg zoo.cfg

  11)vi zoo.cfg

  12)修改dataDir=/tmp/zookeeper为dataDir=/home/zookeeper-3.4.9/data

  13)在clientPort=2181下面增加

    server.0=192.168.145.180:2888:3888

    server.1=192.168.145.181:2888:3888

    server.2=192.168.145.182:2888:3888

  14)更改完成之后按下键盘Esc键退出编辑,之后输入:wq回车退出并保存

  15)创建myid文件

    cd /home/zookeeper-3.4.9/data

    touch myid

  16)修改myid文件

    vi myid

  根据上面的配置,如果当前是180机器,则myid文件中写0,181写1,也就是server.x的这个x,上面配置180是0,181是1,182是2。则根据实际安装的机器修改。

  17)用以上方式分别安装其他两台服务器

1.4 启动zookeeper集群

  cd /home/zookeeper-3.4.9/bin

  ./zkServer.sh start

1.5 集群测试

  1)服务器状态

    cd /home/zookeeper-3.4.9/bin

    ./zkServer.sh status

  180服务器:

zookeeper 加用户 zookeeper用户名密码_linux_05


  181服务器:

zookeeper 加用户 zookeeper用户名密码_zookeeper_06


  182服务器:

zookeeper 加用户 zookeeper用户名密码_zookeeper_07


  从上面的三台服务器状态可以看到182服务器是leader角色,180和181服务器是follower角色。

  2)停止182服务器

    cd /home/zookeeper-3.4.9/bin

    ./zkServer.sh stop

  182服务器:

zookeeper 加用户 zookeeper用户名密码_linux_08


  181服务器:

zookeeper 加用户 zookeeper用户名密码_zookeeper 加用户_09


  180服务器:

zookeeper 加用户 zookeeper用户名密码_centos_10


  3)再次启动182服务器

    cd /home/zookeeper-3.4.9/bin

    ./zkServer.sh start

  服务器状态如下:

  182服务器:

zookeeper 加用户 zookeeper用户名密码_zookeeper_11


  181服务器:

zookeeper 加用户 zookeeper用户名密码_centos_12


  180服务器:

zookeeper 加用户 zookeeper用户名密码_java_13


  到此为止,整个zookeeper集群全部搭建完成。

1.6错误处理

  安装好以后在启动zookeeper时,可能会遇到Error contacting service. It is probably not running。

  解决思路:

    1.防火墙未关闭导致的,检查防火墙。

    2.在启动zookeeper以后在bin目录下会出现一个zookeeper.out文件,是zookeeper的启动日志,可以进行查看具体的错误情况。

    3.停止zookeeper集群,删除节点信息,重新启动。删除节点信息命令如下:

      cd /home/zookeeper-3.4.9/data

      rm -rf version-2/

      rm -rf zookeeper_server.pid

  4.检查端口是否被占用

    netstat -apn | grep 2181