ZooKeeper-单机安装&集群安装

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

前面我们介绍介绍了几个常用的代理服务器,本章节我们讲来讲解Zookeeper这个中间件。

ZooKeeper 是一个分布式协调服务,广泛应用于分布式系统的配置管理、命名服务、分布式锁等场景。本文将详细介绍 ZooKeeper 单机安装集群安装的步骤。


一、准备工作

1.JDK环境准备

由于Zookeeper是基于Java语言,所以我们需要准备JDK环境,这里实际上和我们前面讲解的Web服务器-Tomcat类似。

yum -y install java-1.8.0-openjdk
    [root@localhost ~]# java -version
    openjdk version "1.8.0_412"
    OpenJDK Runtime Environment (build 1.8.0_412-b08)
    OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)

    2.ZooKeeper软件包准备

    wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz
    tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz
    mv apache-zookeeper-3.8.1-bin /opt/zookeeper

    二、单机模式安装

    #当然这里并没有修改任何配置
    #正常使用至少要修改数据存储路径
    cd /opt/zookeeper/conf
    cp zoo_sample.cfg zoo.cfg

    ​​​​​​

    #启动单机版 
    [root@localhost conf]# ../bin/zkServer.sh  start
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    #检查服务状态,standalone是单机版 
    [root@localhost conf]# ../bin/zkServer.sh  status
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: standalone
    #链接zk
    [root@localhost conf]# ../bin/zkCli.sh 
    /usr/bin/java
    Connecting to localhost:2181
    #省略部分信息 
    Welcome to ZooKeeper!
    JLine support is enabled
    2025-04-16 23:51:35,611 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):o.a.z.ClientCnxn$SendThread@1452] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x1000079454f0000, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] ls  /
    [zookeeper]
    [zk: localhost:2181(CONNECTED) 1] 

      三、集群模式安装(以 3 节点为例)

      步骤 1:配置所有节点修改每台服务器的 zoo.cfg

      这里实际建议是hosts方式,避免使用直接使用ip地址。​​​​​​​

      1. server.x: 节点唯一 ID,需与 myid 文件一致。
      2. 2888: 节点间数据同步端口。
      3. 3888: 选举通信端口。

      步骤 2:创建 myid 文件

      由于默认的数据目录是在/tmp/zookeeper,所以这里我还是使用这个路径。需要提前创建数据目录。

      #在140执行
      echo 1 > /tmp/zookeeper/myid
      #在141执行
      echo 2 > /tmp/zookeeper/myid
      #在142执行
      echo 3 > /tmp/zookeeper/myid

      步骤3 :启动集群

      在所有节点启动 ZooKeeper

      cd /opt/zookeeper/bin ./zkServer.sh start

      步骤4: 检查集群状态

      cd /opt/zookeeper/bin ./zkServer.sh status

      正常三节点应该是1个leader,2个follower,这个时候集群就算搭建成功。​​​​​​​

      [root@localhost conf]# ../bin/zkServer.sh status
      /usr/bin/java
      ZooKeeper JMX enabled by default
      Using config: /opt/zookeeper/bin/../conf/zoo.cfg
      Client port found: 2181. Client address: localhost. Client SSL: false.
      Mode: leader

      这样我们就启动了一个三节点的Zookeeper集群。


      运维小路

      一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

      关注微信公众号《运维小路》获取更多内容。

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值