ZooKeeper 环境搭建详细教程之三(真集群)

ZooKeeper 搭建详细步骤之三(真集群)
ZooKeeper 搭建详细步骤之二(伪集群模式)
ZooKeeper 搭建详细步骤之一(单机模式)
ZooKeeper 及相关概念简介

真集群搭建

搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。

以下是一个简化的步骤指南:

前置条件

  • 准备至少三台独立的物理服务器或虚拟机,确保它们之间网络连通。
  • 在每台服务器上安装相同的 ZooKeeper 版本。

步骤一:配置 ZooKeeper 安装目录

在每台服务器上,选择一个目录作为 ZooKeeper 的安装目录,例如 /opt/zookeeper。解压 ZooKeeper 安装包并将其内容移动到此目录。

步骤二:配置 ZooKeeper 配置文件

在每台服务器上编辑 zoo.cfg 文件(通常位于安装目录的 conf 子目录下),为每个节点指定相应的配置。关键配置项包括:

  • dataDir: 指定每个节点的数据存储目录,应为服务器上的唯一路径,例如 /var/lib/zookeeper/data

  • clientPort: 指定每个节点对外提供服务的客户端连接端口,通常设为 2181。

  • server.X: 配置集群成员信息,其中 X 是一个唯一的整数标识符(如 1、2、3)。格式为 hostname:peerPort:leaderElectionPort,示例如下:

    server.1=server1.example.com:2888:3888
    server.2=server2.example.com:2888:3888
    server.3=server3.example.com:2888:3888
    
    • hostname: 对应服务器的主机名或IP地址。
    • peerPort: 用于集群内部通信的端口(默认为 2888)。
    • leaderElectionPort: 用于选举 leader 的端口(默认为 3888)。

确保在所有节点的 zoo.cfg 文件中都配置了完整的集群成员列表。

步骤三:生成 myid 文件

在每台服务器的数据目录(即 dataDir 设置的路径)下创建一个名为 myid 的文件,内容仅为一个整数,对应于 zoo.cfg 文件中 server.X 配置项中的 X。例如,对于 server.1myid 文件内容应为 1

步骤四:开放防火墙端口

确保所有服务器上的相关端口(客户端端口 2181,以及集群内部通信端口 2888 和 3888)在防火墙中开放,允许集群间通信。

步骤五:启动 ZooKeeper 服务

在每台服务器上,通过以下命令启动 ZooKeeper 服务:

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

检查服务启动日志,确认无错误信息。

步骤六:验证集群状态

通过 ZooKeeper CLI 连接到任意一个节点,检查集群状态:

./zkCli.sh -server server1.example.com:2181

在 CLI 中执行 stat 命令,观察输出信息中的 Mode: 字段,确认是否有节点处于 leader 状态,其余节点应为 follower 状态。此外,还可以使用 ls / 命令查看根目录下的节点,确保所有节点数据一致。

以上就是一个基本的 ZooKeeper 真集群搭建过程。实际操作时,请根据具体的系统环境和需求进行适当的调整。确保所有节点配置正确,网络通信畅通,且能够正常加入集群并参与 leader 选举。完成搭建后,应定期检查集群健康状况,确保其持续稳定运行。

接下来我们来演示一下配置的详细过程命令,下面以三个虚拟机 node1,node2,node3 为例,安装目录/opt/apps/zookeeper 。

步骤举例演示

先解压并重命名
[zhang@node3 soft]$ ls
apache-flume-1.11.0-bin_.tar.gz  apache-zookeeper-3.8.4-bin_.tar.gz  jdk-8u281-linux-x64.tar.gz
apache-hive-3.1.3-bin.tar.gz     hadoop-3.2.4.tar.gz
[zhang@node3 soft]$ tar -zxvf apache-zookeeper-3.8.4-bin_.tar.gz -C /opt/apps/
# .....省略过程# 重命名
[zhang@node3 soft]$ cd /opt/apps/
[zhang@node3 apps]$ ls
apache-zookeeper-3.8.4-bin  flume  hadoop-3.2.4  hive3.1  jdk1.8.0_281  temp
[zhang@node3 apps]$ mv apache-zookeeper-3.8.4-bin/ zookeeper
[zhang@node3 apps]$ ls
flume  hadoop-3.2.4  hive3.1  jdk1.8.0_281  temp  zookeeper
修改环境变量

为了操作命令方便性,这里会配置~/bashrc 中的环境变量 path 指向 zookeeper/bin 目录

具体配置可以参考之前的单机搭建

在这里插入图片描述

修改配置文件

在 ZooKeeper 安装目录 conf 下配置 zoo.cfg 文件,三个虚拟机配置相同,内容关键配置如下:

dataDir=/opt/apps/zookeeper/zkdata
# the port at which the clients will connect
clientPort=2181
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

具体命令:

[zhang@node3 conf]$ vim zoo.cfg  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317241.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AC+AP三层组网实验(华为)

一,技术简介 APAC架构是一种常见的无线局域网(WLAN)组网方式,主要由接入点(Access Point,简称AP)和接入控制器(Access Controller,简称AC)组成。 在APAC架构…

PotatoPie 4.0 实验教程(25) —— FPGA实现摄像头图像直方图均衡变换

图像的直方图均衡是什么? 图像的直方图均衡是一种用于增强图像对比度的图像处理技术。在直方图均衡中,图像的像素值被重新分配,以使得图像的直方图变得更均匀,即各个像素值的分布更加平衡。这意味着直方图中每个像素值的频率大致…

免费ChatGPT合集——亲测免费

1、YesChat 无需登录 网址:YesChat-ChatGPT4V Dalle3 Claude 3 All in One Freehttps://www.yeschat.ai/ 2. 讯飞星火 要登录 讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞 3.通义千问 要登录 通义我是通义,一个专门响应人类指令的…

【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例

peerconn的信令是通过post 消息到自己的信令线程消息来处理的PeerConnectionMessageHandler 是具体的处理器G:\CDN\rtcCli\m98\src\pc\peer_connection_message_handler.hMachinery for handling messages posted to oneself PeerConnectionMessageHandler 明确服务于 signalin…

什么是域名解析?域名解析的完整流程是什么?如何清理DNS缓存?(附源码)

目录 1、什么是域名? 2、为什么使用域名? 3、域名解析的完整流程 4、调用gethostbyname系统接口将域名解析成IP地址 5、为什么需要清理系统DNS缓存? 6、使用cmd命令清理DNS缓存 7、通过代码去清除系统DNS缓存 C软件异常排查从入门到精…

Eagle for Mac:强大的图片管理工具

Eagle for Mac是一款专为Mac用户设计的图片管理工具,旨在帮助用户更高效、有序地管理和查找图片资源。 Eagle for Mac v1.9.2中文版下载 Eagle支持多种图片格式,包括JPG、PNG、GIF、SVG、PSD、AI等,无论是矢量图还是位图,都能以清…

Orange3数据可视化(树查看器-决策树)

树视图 分类和回归树的可视化。 输入 树:决策树 输出 选中的数据:从树节点中选中的实例 数据:带有额外一列,显示每个点是否被选中 这是一个多功能的小部件,用于展示分类和回归树的2D可视化。用户可以选择一个节点…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11-1.12

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11 神经网络的权重…

Aker(安碁科技)晶振产品应用和选型

一、石英晶体振荡器简介 在电子电路系统中,特定的动作需要严格按照一定的顺序进行,以确保数据被正确处理和操作,时钟信号就成了系统工作的重要引导者。而且在多模块复杂电路系统中,为了确保不同功能模块能协调一致地工作&#xf…

使用RTSP将笔记本摄像头的视频流推到开发板

一、在Windows端安装ffmpeg 1. 下载ffmpeg:下载ffmpeg 解压ffmpeg-master-latest-win64-gpl.zip bin 目录下是 dll 动态库 , 以及 可执行文件 ;将 3 33 个可执行文件拷贝到 " C:\Windows " 目录下 ,将所有的 " .dll " 动态库拷贝到 " C:\Windows\Sy…

数据挖掘之基于K近邻算法的原油和纳斯达克股票数据预测分析

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在当今日益复杂的金融市场中,准确地预测原油价格和纳斯达克股票市场的走势对于投资者、政…

Python 与 TensorFlow2 生成式 AI(四)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:文本生成方法的崛起 在前几章中,我们讨论了不同的方法和技术来开发和训练生成模型。特别是在第六章“使用 …

易查分如何使用导出PDF功能?

易查分的导出PDF文件功能可以将查询结果下载到本地,也可用于打印出纸质资料。老师和学生家长都可以自主导出PDF文件,下面就来教大家如何使用此功能。 📌老师如何导出PDF? 在查询管理页,点击管理按钮-导出,可…

人工智能分割分类model:nnUnet-paddle

文章目录 神经网络nnUnet和paddle都需要在Ubuntu下进行安装PaddleProject 神经网络 开源来自https://github.com/MIC-DKFZ/nnUNet 自建了仓库,但还不会用 来自 mmsegmentation有空去了解 . MICCAI 2020 也是用到这个网络 paddle上的是不是不能用… nnUnet和pad…

机器学习/算法工程师面试题目与答案-深度学习部分1

机器学习/算法工程师面试题目与答案-深度学习部分 BatchNormalization的作用梯度消失循环神经网络,为什么好?什么是GroupConvolution什么是RNN模型不收敛的原因图像处理中锐化和平滑的操作VGG使用3*3卷积核的优势是什么?Relu比Sigmoid的效果好在哪里?神经网络中权…

Apache Doris 2.x 版本【保姆级】安装+使用教程

Doris简介 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于…

深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)

YOLOv5简介 YOLOv5是一种单阶段目标检测算法,它在YOLOv4的基础上引入了多项改进,显著提升了检测的速度和精度。YOLOv5的设计哲学是简洁高效,它有四个版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,分别对应不同的模型大小…

【MySQL】MVCC的实现原理

【MySQL】MVCC的实现原理 MVCC简介事务的隔离级别读未提交(Read Uncommitted)概念分析 读已提交(Read Committed)概念分析结论 可重复读(Repeatable Read)概念分析结论 串行化(Serializable &am…

WebSocket 深入浅出

WebSocket 深入浅出 1. WebSocket 是什么2. WebSocket 建立连接通信的过程3. WebSocket 和http的联系与区别4. WebSocket 的使用场景及限制 1. WebSocket 是什么 定义:WebSocket 是一种网络通信协议,它允许在单个TCP连接上进行全双工通信。是HTML5规范提…

Scala 多版本下载指南

Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…