Zookeeper集群环境搭建

646 阅读2分钟

以下配置所以机器节点都需要: 可以使用 scp -rp root@slave1:/usr/local/src命令远程拷贝到其它节点机子上

  1. 解压zookeeper安装压缩包

  2. 将zookeeper的bin目录设置到~/.bashrc环境变量中

  3. source ~/.bashrc 使设置的环境变量生效

  4. 修改zookeeper配置,进入zookeeper的conf目录 mv zoo-sample.cfg zoo.cfg,重命名这个配置文件。

  5. 编辑zoo.cfg, 修改dataDir=/usr/local/src/zookeeper-3.4.11/data的目录路径

  6. 编辑zoo.cfg,底部加入:

    server.0=192.168.241.20:2888:3888
    server.1=192.168.241.21:2888:3888
    server.2=192.168.241.22:2888:3888
    

    server.0 启动 0表示节点机器的id号,对应后面节点机器的ip,和zookeeper通信的端口2888 3888

  7. 在zookeeper的目录下,新建一个文件夹data mkdir data, 同时在data文件夹中新建一个文件myid,并编辑:(所有节点)

    ip为192.168.241.20的节点机器myid文件中编辑id为 0;
    ip为192.168.241.21的节点机器myid文件中编辑id为 1;
    ip为192.168.241.22的节点机器myid文件中编辑id为 2;
    
  8. 开启端口通信的防火墙: (所有节点)

    [root@localhost zookeeper-3.4.11]# firewall-cmd --zone=public --add-port=2888/tcp --permanent
    success
    [root@localhost zookeeper-3.4.11]# firewall-cmd --zone=public --add-port=3888/tcp --permanent
    success
    [root@localhost zookeeper-3.4.11]# systemctl restart firewalld
    
  9. 关闭防火墙: (所有节点)

    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    
  10. 开启zookeeper集群(所有节点)

    zkServer.sh start
    

    提示:

    ZooKeeper JMX enabled by default
    	Using config: /usr/local/src/zookeeper-3.4.11/bin/../conf/zoo.cfg
    	Starting zookeeper ... STARTED
    
  11. 查看zookeeper启动状态(所有节点)

    zkServer.sh status
    

    提示:

    ZooKeeper JMX enabled by default
    Using config: /usr/local/src/zookeeper-3.4.11/bin/../conf/zoo.cfg
    Mode: follower (zookeeper的从节点)
    Mode: leader	(zookeeper的主节点)
    

    jps命令查看:启动成功的节点会有:QuorumPeerMain进程

  12. 出现报错信息

    Error contacting service. It is probably not running.
    

    表示:

    1. 防火墙没有关闭。
    2. myid中的id号和 zoo.cfg中设置的机器节点的server.x不对应。
    3. 整个集群的节点,需要超过半数以上的机器都启动zookeeper,才能成功启动zookeeper。