Ubuntu下安装Zookeeper集群

Zookeeper集群是一个开源的分布式协调服务系统,它由Apache软件基金会维护,旨在为分布式应用提供一致性和可靠性的服务。

在Zookeeper集群中,服务器可以扮演三种角色------领导者(Leader)、跟随者(Follower)和观察者(Observer,部分版本或配置中可能不包含)。领导者负责处理客户端的写请求和集群内部的调度,跟随者则处理读请求并同步领导者的数据,观察者类似于跟随者,但不参与投票过程。

Zookeeper集群通过ZAB(Zookeeper Atomic Broadcast)协议保证数据的一致性。客户端的写请求首先发送给领导者,领导者再将请求广播给所有跟随者,当大多数跟随者确认后,领导者才将请求应用到自己的数据副本上,并通知跟随者更新数据。

跟随者会定期从领导者同步数据,以保持数据的一致性。这种机制确保了即使领导者发生故障,集群也能迅速恢复服务。

Zookeeper被广泛应用于配置管理、服务注册与发现、分布式锁、集群管理、命名服务、队列管理。

1、准备Ubuntu主机

我用VMware跑了两个Ubuntu系统,来模拟Zookeeper集群的主机和从机。两台虚拟机的主机名分别为demo1、demo2,IP地址分别为192.168.23.130、192.168.23.131。在每台虚拟机上需要分别配置好/etc/hosts文件和/etc/hostname文件,如下图所示:

在准备VMware虚拟机时,我遇到了复制后的Ubuntu虚拟机网卡失效的问题,解决方法见博文:VMware复制Ubuntu虚拟机后网卡失效的问题-CSDN博客

2、安装Zookeeper

下载地址:Apache Download Mirrors

下载pache-zookeeper-3.9.2-bin.tar.gz

解压:tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz -C ~/training/

3、配置Zookeeper集群

1)、配置Zookeeper环境变量:

> vi ~/bashrc, 在最下面添加:

ZOOKEEPER_HOME=/home/worker/training/apache-zookeeper-3.9.2-bin

export ZOOKEEPER_HOME

PATH=ZOOKEEPER_HOME/bin:PATH

export PATH

2)、配置conf/zoo.cfg:

分别配置两台虚拟机的zoo.cfg:

dataDir=/home/worker/training/apache-zookeeper-3.9.2-bin/tmp/zookeeper

clientPort=2181

server.1=demo1:2888:3888

server.2=demo2:2888:3888

3)、配置myid:

/home/worker/training/apache-zookeeper-3.9.2-bin

mkdir /tmp/zookeeper

touch /tmp/zookeeper/myid

echo 1 > /tmp/zookeeper/myid

在第一台虚拟机中myid为1,第二台虚拟机中myid为2.

5、启动zookeeper

分别启动两台虚拟机上的Zookeeper:

./bin/zkServer.sh start

6、查看Zookeeper集群状态:

./bin/zkServer.sh status

从下图可见:一台虚拟机的状态时leader,另一台状态为follower。

相关推荐
木子欢儿19 小时前
Intel 架构的 MacBook Pro 运行 Linux 发热量高解决
linux·运维·服务器
会编程的土豆1 天前
Go 模板初识
linux·运维·服务器
aFakeProgramer1 天前
Linux版本兼容问题及RTA-VRTE环境配置笔记
linux·笔记
Zhu7581 天前
在Ubuntu24快速配置专用SFTP
linux·sftp
码农客栈1 天前
Linux 内核顶层 Makefile 详解
linux
Embedded-Xin1 天前
Rust学习——Cargo工具
linux·学习·架构·rust·嵌入式
weixin_435776111 天前
2026年长沙托育vi设计从风格定位到元素运用的设计方法
linux·运维·服务器·python
benjiangliu1 天前
LINUX系统-19-库制作与原理(一)
linux·运维·服务器
FriendshipT1 天前
Ubuntu 20.04 下使用 Ollama 本地部署 AI 大模型
linux·人工智能·python·深度学习·ubuntu
bellus-1 天前
win11使用ubuntu 26.04
linux·运维·ubuntu