安装3台机器来作为zookeeper集群,3台机器的ip分别是192.168.174.7,192.168.174.8,192.168.174.9。zookeeper由java编写,所以在安装zookeeper前先安装jdk环境。

  1. 3台机器上分别创建zookeeper的安装目录
    mkdir -p /usr/local/software/zookeeper
  2. 官网下载tar包,3台机器上分别分别解压
    tar -xvf zookeeper-3.4.11.tar.gz -C /usr/local/software/zookeeper/
  3. 3台机器分别进入安装目录下,将zoo.sample.cfg重命名为zoo.cfg,然后修改dataDir配置并添加dataLogDIr配置。dataDir是存储快照文件的目录,dataLogDir是存储事务日志的目录,默认的事务日志文件存储在dataDir指定的目录中,由于事务日志的写性能直接关系到zookeeper的性能,最好单独指定。
    dataDir=/opt/data/zookeeper/data
    dataLogDir=/opt/data/zookeeper/logs
  4. 开始集群配置,修改3台机器下的zoo.cfg文件,添加如下内容:
    server.1=192.168.174.7:2888:3888
    server.2=192.168.174.8:2888:3888
    server.3=192.168.174.9:2888:3888

    有n台服务器就到server.n。后面分别配置ip地址和端口。2888端口是该服务器与集群中的leader交换信息的端口,3888是选举时服务器相互通信的端口。

  5. 分别在3台机器的${dataDir}路径下即上面第三步指定的dataDir目录下创建myid文件,myid文件里只写入对应服务器的编号即上面第四步的n。在本配置中ip为174.7的服务器在该文件下写入1,其他的服务器对应写入n值(2,3...)
    mkdir -p /opt/data/zookeeper/data
    vim /opt/data/zookeeper/data/myid
  6. 为了以后执行zookeeper命令方便,配置一下zookeeper的环境变量。
    vim /etc/profile

    在文件中添加如下内容:

    export ZOOKEEPER_HOME=/usr/local/software/zookeeper/zookeeper-3.4.11
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
  7. 分别启动三台zookeeper并查看各台机器的角色,是leader或是follower
    开启zookeeper服务
    zkServer.sh start

    查看zookeeper状态

    zkServer.sh status

    当仅开启第一台时,查看状态显示未运行,当至少开启两台时,集群模式才会正常,才会选举leader和follower,如果启动报错,查看${dataDir}下的zookeeper.out日志文件。

注意事项:开启集群模式时,要注意防火墙的配置。