【Java从零到架构师第Ⅳ季】【03】ZooKeeper_安装、搭建集群


持续学习&持续更新中…

守破离


【Java从零到架构师第Ⅳ季】【03】ZooKeeper_安装、搭建集群

ZooKeeper简介

  • https://zookeeper.apache.org/

  • ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务

  • 是Google的Chubby一个开源的实现,是由雅虎实现的的一个开源产品,目前是Apache的顶级开源项目;

  • ZooKeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper安装

在这里插入图片描述

  1. 安装ZooKeeper之前应该确保计算机上已经安装好了JDK

  2. 从官网下载安装包(https://downloads.apache.org/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz),并上传至Linux服务器

  3. 解压到指定目录:tar -zxvf /usr/local/soft/apache-zookeeper-3.6.0-bin.tar.gz -C /usr/local/

  4. 修改配置文件:

    进入配置文件所在的目录:cd /usr/local/apache-zookeeper-3.6.0-bin/conf
    备份一个配置文件以防万一,然后进行修改zoo.cfg:cp zoo_sample.cfg zoo.cfg 
    将zoo.cfg清空,然后添加如下内容:
    dataDir=/root/apps/zookeeper/data
    server.1=192.168.152.129:2888:3888
    server.2=192.168.152.130:2888:3888
    server.3=192.168.152.131:2888:3888
    tickTime=2000
    initLimit=10
    syncLimit=5
    clientPort=2181
    
  5. 创建数据存储目录:在/root/apps/zookeeper创建data目录:mkdir -p /root/apps/zookeeper/data

  6. 在数据存储目录下创建标志文件myid:cd /root/apps/zookeeper/dataecho 1 > myid

  7. 【可选】配置Zookeeper的环境变量:vi /etc/profile

    export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.0-bin
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    

    使配置文件生效:source /etc/profile

  8. 注意:

    • 服务器1(192.168.152.129)上,myid为1;服务器2(192.168.152.130)上,myid为2;服务器3(192.168.152.131)上,myid为3
    • 服务器1:clientPort=2181;服务器2:clientPort=2182;服务器3:clientPort=2183;
    • 要记得关闭防火墙:systemctl stop firewalld
  9. 启动服务:/usr/local/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start

    ./zkServer.sh start # 启动命令
    ./zkServer.sh status # 查看状态命令
    ./zkServer.sh stop # 停止服务命令
    ./zkServer.sh restart# 停止服务命令
    

使用一台服务器搭建ZooKeeper集群

  • 将ZooKeeper的压缩文件解压三次,分别重命名为apache-zookeeper-1、apache-zookeeper-2、apache-zookeeper-3。
  • 然后在每一个ZooKeeper解压目录的conf/zoo.cfg中,将dataDir设置在自己的ZooKeeper解压目录下,例如:/usr/local/apache-zookeeper-1/data
  • 并在每个zoo.cfg中添加:(假设本机IP地址:192.168.152.129)
    dataDir=/usr/local/apache-zookeeper-1/data
    server.1=192.168.152.129:2888:3888
    server.2=192.168.152.129:2887:3887
    server.3=192.168.152.129:2886:3886
    tickTime=2000
    initLimit=10
    syncLimit=5
    clientPort=2181
    
  • 注意每个ZooKeeper的myid内容和zoo.cfg中的dataDir、clientPort都得修改

注意

  • 一个ZooKeeper集群一般使用2n + 1台机器,最佳实践是3台。
  • 一个ZooKeeper集群应该部署到同一局域网下。
  • 可以有多个ZooKeeper集群

  • 查看防火墙状态:systemctl status firewalldfirewall-cmd --state
  • 关闭防火墙:systemctl stop firewalld
  • 开机禁用防火墙:systemctl disable firewalld
  • 开机启用防火墙:systemctl enable firewalld

参考

小码哥: Java从0到架构师④高级互联网架构师.


本文完,感谢您的关注支持!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值