当前位置: 首页 > news >正文

如何在Linux系统中搭建Zookeeper集群

一、概述

ZooKeeper是一个开源的且支持分布式部署的应用程序,是Google的Chubby一个开源的实现;它为分布式应用提供了一致性服务支持,包括:配置维护、域名服务、分布式同步、组服务等。

官网:https://zookeeper.apache.org/index.html

二、集群搭建

1、目标

分别在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Zookeeper,搭建Zookeeper集群。

2、准备

准备三台IP地址为192.168.1.100、192.168.1.101和192.168.1.102的虚拟机,视频教程:https://www.bilibili.com/video/BV15m4y1d7ZP

3、步骤

a、下载:https://zookeeper.apache.org/releases.html,这里下载apache-zookeeper-3.8.4-bin.tar.gz

b、连接:通过MobaXterm 远程连接192.168.1.100虚拟机;

c、上传:将apache-zookeeper-3.8.4-bin.tar.gz压缩文件上传至/opt目录;

d、解压:将Zookeeper压缩文件解压至/usr/local目录

[root@localhost ~]# tar -zxvf /opt/apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local

e、删除:删除压缩文件

[root@localhost ~]# rm -f /opt/apache-zookeeper-3.8.4-bin.tar.gz

f、创建目录:

/usr/local/apache-zookeeper-3.8.4-bin根目录下创建data和log文件夹

[root@localhost ~]# mkdir /usr/local/apache-zookeeper-3.8.4-bin/{datas,logs}

g、修改配置:

①、重命名:

[root@localhost ~]# mv /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo.cfg

②、改配置:

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/conf/zoo.cfg <<-'EOF'
# 设置服务器之间,或客户端与服务器之间心跳时间间隔,单位:毫秒
tickTime=2000
# Leader节点允许从节点连接和同步的初始化时间段,以tickTime倍数表示
initLimit=10
# Leader节点和从节点之间同步通信的时间段,以tickTime倍数表示
syncLimit=5
# 设置存储内存快照目录
dataDir=/usr/local/apache-zookeeper-3.8.4-bin/datas
# 设置Zookeeper日志目录
dataLogDir=/usr/local/apache-zookeeper-3.8.4-bin/logs
# 设置用于客户端连接Zookeeper端口
clientPort=2181# server.X:用于配置集群中的每个服务器节点,X 是一个唯一的数字标识,等号右边是该节点的IP地址和两个端口,这些端口分别是用于节点间进行Leader选举的端口(Leader Election)和用于节点间进行数据同步的端口(Leader Sync)。
server.100=192.168.1.100:2888:3888
server.101=192.168.1.101:2888:3888
server.102=192.168.1.102:2888:3888EOF

h、节点拷贝:

[root@localhost ~]# scp -r /usr/local/apache-zookeeper-3.8.4-bin root@192.168.1.101:/usr/local/apache-zookeeper-3.8.4-bin
[root@localhost ~]# scp -r /usr/local/apache-zookeeper-3.8.4-bin root@192.168.1.102:/usr/local/apache-zookeeper-3.8.4-bin

注意:节点拷贝操作只在192.168.1.100节点执行。

i、创建myid:

每个 Zookeeper 节点 dataDir 指定目录中都需要创建一个名为 myid 的文件,其内容为上述配置文件中 server.X 的X值,例如X是100,那么/usr/local/apache-zookeeper-3.8.4-bin/data/myid文件的值为100,为快速设置内容,建议直接执行如下指令:

192.168.1.100节点:

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
100
EOF

192.168.1.101节点:

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
101
EOF

192.168.1.102节点:

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/datas/myid <<-'EOF'
102
EOF

j、开放端口:

[root@localhost ~]# firewall-cmd --zone=public --add-port=2181/tcp --add-port=2888/tcp --add-port=3888/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

注意:每个Zookeeper所在节点都需要通过执行上面命令开放端口。

三、启动节点

1、逐个操作
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop

注意:每个Zookeeper所在节点都需要通过执行上面命令启动节点。

2、一键操作

通过MobaXterm 远程连接192.168.1.100虚拟机,进行如下操作:

a、zkStart.sh

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh <<-'EOF'
#!/bin/bash
echo "zookeeper start 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh start"
EOF

b、zkStop.sh

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh <<-'EOF'
#!/bin/bash
echo "zookeeper stop 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh stop"
EOF

c、zkStatus.sh

[root@localhost ~]# tee /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh <<-'EOF'
#!/bin/bash
echo "zookeeper status 100,101,102..."ssh 192.168.1.100 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
ssh 192.168.1.101 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
ssh 192.168.1.102 "source /usr/local/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status"
EOF

d、设置权限

[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh
[root@localhost ~]# chmod +x /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh

e、执行文件

[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStop.sh
[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStatus.sh

四、访问节点

[root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkCli.sh -server 192.168.1.100:2181
http://www.lryc.cn/news/358995.html

相关文章:

  • C++:vector的模拟实现
  • QT系列教程(5) 模态对话框消息传递
  • Linux学习笔记(清晰且清爽)
  • 2.5Bump Mapping 凹凸映射
  • 数字化前沿:Web3如何引领未来技术演进
  • 【kubernetes】探索k8s集群的存储卷、pvc和pv
  • UI线程和工作线程
  • RandLA-Net 训练自定义数据集
  • 洛谷 B3642:二叉树的遍历 ← 结构体方法 链式前向星方法
  • 飞腾+FPGA多U多串全国产工控主机
  • uni-app实现页面通信EventChannel
  • 等保系列之——网络安全等级保护测评工作流程及工作内容
  • 自然语言处理中的BERT模型深度剖析
  • 数据结构:希尔排序
  • unicloud 云对象
  • 【车载开发系列】常用专业术语汇总
  • 如何实现Docker容器的自动化升级:不再为手动更新烦恼!
  • SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼
  • 使用C#实现VS窗体应用——画图板
  • flutter 自定义本地化-GlobalMaterialLocalizations(重写本地化日期转换)
  • HTTPS 原理技术
  • Linux基础指令及其作用之压缩与解压
  • ORA-08189: 因为未启用行移动功能, 不能闪回表问题
  • html+CSS部分基础运用9
  • 五大元素之一,累不累——Java内部类
  • YAML快速编写示例
  • 2024 江苏省大学生程序设计大赛 2024 Jiangsu Collegiate Programming Contest(FGKI)
  • 【C语言】基于C语言实现的贪吃蛇游戏
  • 代码审计(工具Fortify 、Seay审计系统安装及漏洞验证)
  • cocos creator 3.x 手搓背包拖拽装备