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。

相关推荐
2401_867021907 分钟前
linux下软件安装、查找、卸载
linux
TT-Kun7 分钟前
Linux | 进程控制(进程终止与进程等待)
linux·运维·服务器
...:...:...15 分钟前
Linux 第三次脚本作业
linux·运维·服务器
二十七剑1 小时前
jvm调试和查看工具
java·linux·jvm
菜菜小蒙1 小时前
【Linux】基于UDP/TCP服务器与客户端的实现
linux·服务器·udp
人间打气筒(Ada)1 小时前
ubuntu网络及软件包管理
网络·ubuntu·php
a小胡哦1 小时前
Windows、Mac、Linux,到底该怎么选?
linux·windows·macos·操作系统
_extraordinary_1 小时前
Linux权限(一)
android·linux·excel
易安杰1 小时前
ElasticSearch+Kibana通过Docker部署到Linux服务器中
linux·elasticsearch·搜索引擎·全文检索·中文分词
笑虾2 小时前
Docker 自制镜像:Ubuntu 安装 samba+Webmin
ubuntu·docker·samba