Zookeeper集群部署

2024-08-07 14:56:17 浏览数 (2)

集群规划

Zookeeper 是一个开源的分布式协调服务,主要用于管理和协调分布式系统中的各种服务和数据。通俗来说,它就像是一个“管理员”或“调度员”,帮助不同的服务和应用程序之间进行通信和协作。

例子:

想象一下一个大型活动的组织,比如一个音乐节。为了确保活动顺利进行,组织者需要协调很多方面,比如场地、演出人员、票务等。

配置管理:组织者会制定一个详细的计划,包含每个演出者的时间、地点等信息。这个计划就像 Zookeeper 存储的配置信息,确保所有工作人员都能获取到最新的安排。

命名服务:在活动中,每个演出者都有一个独特的名字,观众和工作人员可以通过名字找到他们。Zookeeper 就是为这些服务提供了一个“名字簿”。

同步服务:在音乐节上,所有演出者需要在同一时间开始表演,组织者会确保每个演出者都在正确的时间上线,避免冲突。这类似于 Zookeeper 让不同服务保持同步。

选举机制:如果有多个舞台,组织者可能需要选出一个人来负责整个活动的协调,确保所有舞台的表演都能顺利进行。这就像 Zookeeper 在分布式系统中选出一个“领导者”。

hadoop102

hadoop103

hadoop104

zk

zk

zk

前提工作

集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

我们采用zookeeper3.7版本(apache-zookeeper-3.7.1-bin.tar.gz)

hadoop102下解压缩

代码语言:shell复制
cd /opt/module

# 解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
# 重命名
mv apache-zookeeper-3.7.1-bin/ zookeeper

配置环境变量

代码语言:shell复制
# 编辑配置文件
vim /etc/profile

# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=:$ZOOKEEPER_HOME/bin:$PATH

# 加载环境变量使其生效
source /etc/profile

搭建

代码语言:shell复制
# 在/opt/module/zookeeper/目录下创建zkData
cd zookeeper
mkdir zkData
cd zkData

# 设置hadoop102的myid为2
vim myid
2

# 配置zoo.cfg文件
cd /opt/module/zookeeper/conf
mv zoo_sample.cfg zoo.cfg

# 修改设置配置文件
vim zoo.cfg
# 修改数据存储路径配置
dataDir=/opt/module/zookeeper/zkData
# 集群配置
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

分发zookeeper至hadoop103、hadoop104

代码语言:shell复制
# 远程拷贝
scp -r /opt/module/zookeeper hadoop103:/opt/module/
scp -r /opt/module/zookeeper hadoop104:/opt/module/

# 分别登录修改hadoop103、hadoop104上的myid文件中内容为3、4

一键启动脚本

代码语言:shell复制
# 创建脚本
vim start-zk.sh 

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
     ssh $host "source /etc/profile;zkServer.sh start"
     echo "$host zookeeper Server 正在启动......"
done

一键关闭脚本

代码语言:shell复制
# 创建脚本
vim stop-zk.sh

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
     ssh $host "source /etc/profile;/opt/module/zookeeper/bin/zkServer.sh stop"
     echo "$host zookeeper Server 正在关闭......"
done

检查结果

启动成功有以下标志

每台机器jps有QuorumPeerMain进程

查看每台机器的zk状态,可以显示 Zookeeper 的当前状态,包括集群信息、节点状态等

zkServer.sh status

0 人点赞