ZooKeeper学习(二)—Zookeeper单机模式与集群模式环境搭建

Scroll Down

ZooKeeper学习(二)—Zookeeper单机模式与集群模式环境搭建

zookeeper支持三种搭建模式,单机模式,集群模式,伪集群模式

  • 单机模式:zookeeper只运行单个服务,一般用于测试或开发环境
  • 集群模式:zookeeper运行在集群上,一般用于生产环境
  • 伪集群模式:zookeeper在一台机器上运行多个服务,组合成一个集群,适合于单机服务器性能特别好的场景,可以将一台服务器性能得到充分发挥

Centos下安装单机环境

首先先去官网下载zookeeper,http://zookeeper.apache.org/releases.html

这里我们下载了3.4.14版本

image-20200707175633174

  • 上传文件至centos服务器下

  • 输入命令tar -zxvf zookeeper-3.4.14.tar.gz 解压缩

  • 解压缩后进入zookeeper文件夹并创建data文件夹

    cd zookeeper-3.4.14/
    ls
    mkdir data
    ls
    

    image-20200707175824836

  • 进入conf文件夹,并复制原有的配置文件

    cd conf
    cp zoo_sample.cfg zoo.cfg
    

    image-20200707180130058

  • 修改zoo.cfg配置文件的data属性,将其改为刚才我们新建的data文件夹

    vim zoo.cfg
    dataDir=/data/zookeeper/data
    

    image-20200707180419823

  • 进入bin目录,启动zookeeper服务

    cd ../bin
    ./zkServer.sh start
    

    image-20200707180613751

  • 查看zookeeper此时的状态

    ./zkServer.sh status
    

    image-20200707180933770

  • 停止zookeeper

    ./zkServer.sh stop
    

    image-20200707181017377

  • 再次查看zookeeper状态,和启动时查看的状态是不一样的

    image-20200707181036816

伪集群模式的搭建

集群模式和伪集群模式的搭建大同小异,这里我们就用一台服务器来搭建一个zookeeper伪集群,需要在一台机器上面运行三个zookeeper服务,所以我们需要在复制两份zookeeper实例出来,并将其中的配置文件做相应的修改。

这里我们将集群修改为,端口号分别为2181,2182,2183,并且他们的通信端口与投票端口也改为相应的其他值,所以我们这里先对其中一台机器进行相应的修改,然后将这个实例复制两份并进行修改就可以了。

  • 首先进入原有安装的zookeeper,并打开其中的配置文件

    vim zoo.conf
    

    image-20200707234050379

  • 修改配置,增加日志文件存储,增加集群服务访问配置

    #数据存放地址
    dataDir=/data/zookeeper/zookeeper-3.4.14/data
    #日志地址
    dataLogDir=/data/zookeeper/zookeeper-3.4.14/logs
    #端口号
    clientPort=2181
    #每一行都代表一个机器配置
    #server.服务器ID=服务器IP地址:服务器之间通信端⼝:服务器之间投票选举端⼝
    server.1=127.0.0.1:2881:3881
    server.2=127.0.0.1:2882:3882
    server.3=127.0.0.1:2883:3883
    
    

    image-20200707234251933

  • 在每台ZooKeeper机器上,我们都需要在数据目录(即dataDir参数指定的那个目录)下创建一个 myid 文件,该文件只有一行内容,并且是一个数字,即对应于每台机器的Server ID数字。server.1的myid文件只需要写一个1就可以了

    cd /data/zookeeper/zookeeper-3.4.14/data
    touch myid
    vim myid
    
  • 复制此份zookeeper实例两遍

    cp -r zookeeper-3.4.14 zookeeper-02
    cp -r zookeeper-3.4.14 zookeeper-03
    

    然后将02与03的配置文件分别修改

    image-20200707235305973

    image-20200707235243357

  • 先启动服务,还是一样,进入bin目录

    image-20200707235358069

  • 再查看下此时的状态

    image-20200707235429820

  • 这里显示报错,是因为我们的集群只有一台服务启动了,所以他还是显示运行失败,我们这里将其他两台zookeeper的服务也启动后再次查看状态

    image-20200708003028222

    image-20200708003044175
    image-20200708003054869

  • 可以看到,我们的zookeeper服务已经启动了,并且其中的leader机器已经选举出来了,就是02号机器,01和03机器此时都是follower