Zookeeper 集群搭建指的是ZooKeeper分布式模式安装。通常由 2n+1台 servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以 ZooKeeper 集群的数量一般为奇数。

1. 安装ZooKeeper集群要做一下准备:

  1. Zookeeper运行需要java环境,所以需要提前安装jdk。
  2. 检查集群时间是否同步
  3. 检测防火墙是否关闭
  4. 检测主机ip映射有没有配置

     1.1 jdk的安装步骤如下:

       1. 执行java –version ,查看系统是否自带jdk(非sun公司的),卸载自带的jdk,如下:

zookeeper docker集群部署 zookeeper集群搭建步骤_JAVA

           卸载openjdk

 #查看jdk文件名

#卸载jdk及相关依赖

        2. 执行mkdir  –p  /export/server, 新建server文件

        3. 将jdk安装包存到/export/server路径下并解压

        4.执行vi /etc/profile命令,进入profile文件配置环境变量,末尾加入

                  export JAVA_HOME=/export/server/jdk1.8.0_141

                  export PATH=$PATH:$JAVA_HOME/bin

                  export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

        5. 执行source /etc/profile命令,重新加载环境变量文件

        6.执行java –version命令,即可查看Java版本是否存在

    

       1.2 检测集群时间是否同步:

        (1)打开Secure的view------>Command (Chat) Window窗口,输入date回车。

zookeeper docker集群部署 zookeeper集群搭建步骤_配置文件_02

       (2)查看三个服务器时间是否一致。不一致可进行服务器时间同步设置

           CentOS 时间与网络时间同步设置方法如下:

           ①安装ntpdate工具

              [root@slave1 ~]#yum -y install ntp ntpdate

           ②设置系统时间与网络时间同步

              [root@slave1 ~]#  ntpdate 0.asia.pool.ntp.org

           ③将系统时间写入硬件时间。这里是为了防止系统重启后时间被还原,因此需要写到硬件设备中去。

              [root@slave1 ~]# hwclock –systohc

 

       1.3 检测防火墙是否关闭:

 #查看防火墙是否关闭,如下有未关闭项

zookeeper docker集群部署 zookeeper集群搭建步骤_配置文件_03

#关闭防火墙

#关闭防火墙

zookeeper docker集群部署 zookeeper集群搭建步骤_大数据_04

         1.4 检测主机ip映射有没有配置:

          执行vim /etc/hosts 命令,添加以下内容(三台的都需添加)

zookeeper docker集群部署 zookeeper集群搭建步骤_配置文件_05

2.  对于安装leader+follower 模式的集群,大致过程如下:

     (1)配置主机名称到 IP 地址映射配置

     (2)下载解压zookeeeper的安装装包,配置zookeeeper环境变量(三台都需修改)

     (3)修改 ZooKeeper 配置文件

     (4)远程复制分发安装文件

     (5)设置 myid

     (6)启动 ZooKeeper 集群

      如果要想使用Observer模式,可在对应节点的配置文件添加如下配置:

                                 peerType=observer

       其次,必须在配置文件指定哪些节点被指定为 Observer,如:

       server.1:localhost:2181:3181:observer

服务器IP

主机名

myid的值

192.168.52.100

node-1

1

192.168.52.110

node-2

2

192.168.52.120

node-3

3

 

    具体步骤如下:

    第一步:下载zookeeeper的压缩包,下载网址如下

                     http://archive.apache.org/dist/zookeeper/

           我们在这个网址下载我们使用的zk版本为3.4.9.下载完成之后,上传到我们的linux的/export/server路径下准备进行安装

    第二步:解压

           解压zookeeper的压缩包到/export/server路径下去,然后准备进行安装

                      cd /export/server

                      tar -zxvf zookeeper-3.4.9.tar.gz

    第三步:修改zookeeper环境变量(3台都需修改)

#编辑profile文件,末尾添加以下内容:

                      export ZOOKEEPER_HOME= /export/server/zookeeper-3.4.9    

                      export PATH=$PATH:$ZOOKEEPER_HOME/bin

                      source  /etc/profile   #zookeeper环境变量添加完,重载入profile文件

     第四步:修改zookeeper配置文件

            第一台机器修改配置文件

                   cd /export/server/zookeeper-3.4.9/conf/

#复制zoo_sample.cfg文件为zoo.cfg文件

#打开zoo.cfg,编辑修改以下内容:

                                 dataDir=/export/data/zkdata

                                 autopurge.snapRetainCount=3

                                 autopurge.purgeInterval=1

                                 server.1=node-1:2888:3888

                                 server.2=node-2:2888:3888

                                 server.3=node-3:2888:3888

zookeeper docker集群部署 zookeeper集群搭建步骤_zookeeper_06

#新建zkdata文件夹,以后zk数据存放此处

      第五步:添加myid配置

             在第一台机器的

             cd /export/data/zkdata这个路径下创建一个文件,文件名为myid ,文件内容为1

zookeeper docker集群部署 zookeeper集群搭建步骤_大数据_07

            echo 1 > /export/data/zkdata/myid

             more  myid

zookeeper docker集群部署 zookeeper集群搭建步骤_配置文件_08

        第六步:安装包分发并修改myid的值

               安装包分发到其他机器

               第一台机器上面执行以下两个命令

                       scp -r  /export/server/zookeeper-3.4.9/  root@node-2:/export/server/

                       scp -r  /export/server/zookeeper-3.4.9/  root@node-3:/export/server/

               第二台机器上修改myid的值为2

                       echo 2 > /export/data/zkdata/myid

               第三台机器上修改myid的值为3

                       echo 3 >/export/data/zkdata/myid

        第七步:三台机器启动zookeeper服务

                      #这个命令三台机器都要执行

                     /export/server/zookeeper-3.4.9/bin/zkServer.sh start

                    #查看启动状态

                     /export/server/zookeeper-3.4.9/bin/zkServer.sh status