03 | Zookeeper集群操作

在国产OpenEuler 24.03 LTS上,手把手搭建Flink 1.19.2三节点集群(含YARN模式避坑指南) 本文详细介绍了在国产OpenEuler 24.03 LTS系统上搭建Flink 1.19.2三节点集群的完整流程,包括环境准备、系统优化、集群部署及YARN模式避坑指南。通过Standalone和YARN两种资源管理模式的实战配置,帮助用户快速构建高可用的分布式集群,特别针对国产化环境中的兼容性问题提供了解决方案。 阅读详情

第 3 章 Zookeeper 集群操作​

3.1 集群操作​

3.1.1 集群安装

1)集群规划

在 hadoop102、hadoop103 和 hadoop104 三个节点上都部署 Zookeeper。

思考:如果是 10 台服务器,需要部署多少台 Zookeeper?

2)解压安装

(1)在 hadoop102 解压 Zookeeper 安装包到/opt/module/目录下

bash

$ tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

(2)修改 apache-zookeeper-3.5.7-bin 名称为 zookeeper-3.5.7

bash

$ mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7

3)配置服务器编号

(1)在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData

bash

$ mkdir zkData

(2)在/opt/module/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件

bash

$ vi myid

在文件中添加与 server 对应的编号(注意:上下不要有空行,左右不要有空格)

2

注意:添加 myid 文件,一定要在 Linux 里面创建,在 notepad++里面很可能乱码

(3)拷贝配置好的 zookeeper 到其他机器上

bash

$ xsync zookeeper-3.5.7

并分别在 hadoop103、hadoop104 上修改 myid 文件中内容为 3、4

4)配置zoo.cfg文件

(1)重命名/opt/module/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg

bash

[atguigu@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg

(2)打开 zoo.cfg 文件

bash

[atguigu@hadoop102 conf]$ vim zoo.cfg

修改

bash

#修改数据存储路径配置 
dataDir=/opt/module/zookeeper-3.5.7/zkData
#增加如下配置
#######################cluster########################## 
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

(3)配置参数解读

bash

server.A=B:C:D
  • A 是一个数字,表示这个是第几号服务器; 集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据 就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比 较从而判断到底是哪个 server。
  • B 是这个服务器的地址;
  • C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
  • D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

(4)同步 zoo.cfg 配置文件

bash

[atguigu@hadoop102 conf]$ xsync zoo.cfg

5)集群操作

(1)分别启动 Zookeeper

bash

[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start 
[atguigu@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start

(2)查看状态

bash

[atguigu@hadoop102 zookeeper-3.5.7]# bin/zkServer.sh status 
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: follower

[atguigu@hadoop103 zookeeper-3.5.7]# bin/zkServer.sh status 
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: leader

[atguigu@hadoop104 zookeeper-3.4.5]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg Mode: follower
3.1.2 选举机制(面试重点)​

SID:服务器ID。用来唯一标识一台 ZooKeeper集群中的机器,每台机器不能重 复,和myid一致。

ZXID:事务ID。ZXID是一个事务ID,用来 标识一次服务器状态的变更。在某一时刻, 集群中的每台机器的ZXID值不一定完全一 致,这和ZooKeeper服务器对于客户端“更 新请求”的处理逻辑有关

Epoch:每个Leader任期的代号。没有 Leader时同一轮投票过程中的逻辑时钟值是 相同的。每投完一次票这个数据就会增加

1、Zookeeper选举机制——第一次启动

(1)服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为LOOKING;

(2)服务器2启动,再发起一次选举。服务器1和2分别投自己一票并交换选票信息:此时服务器1发现服务器2的myid比自己目前投票推举的(服务器1)大,更改选票为推举服务器2。此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器1,2状态保持LOOKING

(3)服务器3启动,发起一次选举。此时服务器1和2都会更改选票为服务器3。此次投票结果:服务器1为0票,服务器2为0票,服务器3为3票。此时服务器3的票数已经超过半数,服务器3当选Leader。服务器1,2更改状态为FOLLOWING,服务器3更改状态为LEADING;

(4)服务器4启动,发起一次选举。此时服务器1,2,3已经不是LOOKING状态,不会更改选票信息。交换选票信息结果:服务器3为3票,服务器4为1票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOWING;

(5)服务器5启动,同4一样当小弟。

2、Zookeeper选举机制——非第一次启动

(1)当ZooKeeper集群中的一台服务器出现以下两种情况之一时,就会开始进入Leader选举:

  • 服务器初始化启动。
  • 服务器运行期间无法和Leader保持连接。

(2)而当一台机器进入Leader选举流程时,当前集群也可能会处于以下两种状态:

  • 集群中本来就已经存在一个Leader。对于第一种已经存在Leader的情况,机器试图去选举Leader时,会被告知当前服务器的Leader信息,对于该机器来说,仅仅需要和Leader机器建立连接,并进行状态同步即可。

  • 集群中确实不存在Leader。

假设ZooKeeper由5台服务器组成,SID分别为1、2、3、4、5,ZXID分别为8、8、8、7、7,并且此时SID为3的服务器是Leader。某一时刻, 3和5服务器出现故障,因此开始进行Leader选举。

SID为1、2、4的机器投票情况:

(EPOCH,ZXID,SID )  (1,8,1)
(EPOCH,ZXID,SID )  (1,8,2) [当选为新Leader]
(EPOCH,ZXID,SID )  (1,7,4)

选举Leader规则:

  1. EPOCH大的直接胜出
  2. EPOCH相同,事务id大的胜出
  3. 事务id相同,服务器id大的胜出
3.1.3 ZK 集群启动停止脚本​

1)在 hadoop102 的/home/atguigu/bin 目录下创建脚本

[atguigu@hadoop102 bin]$ vim zk.sh

在脚本中编写如下内容

bash

#!/bin/bash
case $1 in
"start"){
    for i in hadoop102 hadoop103 hadoop104 
    do
        echo ---------- zookeeper $i 启动 ------------
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
    done 
};;
"stop"){
    for i in hadoop102 hadoop103 hadoop104 
    do
        echo ---------- zookeeper $i 停止 ------------
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
    done 
};;
"status"){
    for i in hadoop102 hadoop103 hadoop104 
    do
        echo ---------- zookeeper $i 状态 ------------
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
    done 
};;
esac

使用脚本

bash

# 2)增加脚本执行权限
[atguigu@hadoop102 bin]$ chmod u+x zk.sh 
# 3)Zookeeper 集群启动脚本
[atguigu@hadoop102 module]$ zk.sh start 
# 4)Zookeeper 集群停止脚本
[atguigu@hadoop102 module]$ zk.sh stop
基于zookeeper的solrCloud集群搭建 1.安装及搭建相关环境1.1环境准备 centos7,jdk1.8,tomcat8,zookeeper3.4.X,solr4.10.X 链接: https://pan.baidu.com/s/1i47IuKd 密码: emqt 2.zookeeper集群搭建2.1复制zookeeper[root@MiWiFi-R3-srv ~]# mkdir /usr/local/solr-cloud [ 阅读详情

相关推荐

ZooKeeper集群操作以及集群Master选举

ZooKeeper是一个为分布式应用提供的分布式、开源的协调服务。它公开了一组简单的原语,分布式应用程序可以根据这些原语来实现用于同步、配置维护以及命名的更高级别的服务。怎么理解协调服务呢?比如我们有很多应用程序,他们之间都需要读写维护一个 id ,那么这些 id 怎么命名呢,程序一多,必然会乱套,ZooKeeper能协调这些服务,解决命名、配置、同步等问题,而做到这些,只需要一组简单的原语create : 在树中的某个位置创建一个节点delete : 删除一个节点。...

m0_71777195的博客 1015

openEuler24.03 LTS下安装ZooKeeper集群

openEuler24.03 LTS下安装ZooKeeper集群。

大头皮鞋的博客 1301

使用DeepSeek、MCP和AKShare实现智能金融问答系统技术方案

DeepSeek是由深度求索公司开发的大规模语言模型,最新版本DeepSeek-V3采用混合专家(MoE)架构,拥有671B参数,激活37B参数,在多项基准测试中表现优异3。要使用DeepSeek的API服务:访问DeepSeek平台注册账号获取API Key(形如AKShare是基于Python的金融数据接口库,提供股票、基金、期货、宏观经济等领域的海量数据。主要特点包括:免费开源,数据源丰富支持多种数据格式(DataFrame/JSON)持续更新维护安装命令。

Kin 3172

Zookeeper【安装篇】03:Zookeeper【集群】【手动】安装部署

一、规划集群节点 集群节点规划,使用三个节点搭建一个zookeeper集群 bigdata01 bigdata02 bigdata03 注意:这里提前安装好jdk环境,jdk安装见: Linux03:CentOS7.5安装jdk1.8 二、安装包下载 zookeeper官网下载地址 百度网盘的地址: 链接:https://pan.baidu.com/s/1uIUiqq1hLY0B7xZY33OjFQ?pwd=sf3k 提取码:sf3k 三、进行安装 1、bigdata01配置 首先在bigdata01

weixin_40612128的博客 636

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_83703866的博客 3164

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3763

zookeeper安装(详细)

1.上传解压软件压缩包 1| tar -zxvf /opt/zookeeper-3.4.6.tar.gz -C /usr/local 2.修改Zookeeper配置文件 /usr /local/zookeeper-3.4.6/conf/zoo_sample.cfg重名为zoo.cfg。 1 | mv zoo_sample.cfg zoo.cfg ...

人性丶的博客 182

短信验证码逻辑漏洞学习——各种绕过姿势技巧

短信验证码逻辑漏洞学习——各种绕过姿势技巧

记录并分享学习安全的知识点.. 2556

zookeeper 【启动,停止,重启,状态】脚本

zookeeper 【启动,停止,重启,状态】脚本

weixin_45401571的博客 1844

cartographer 添加二维码、apritag码作为路标点,测试位置关系

这里记录一下cartographer里面的路标点是如何转换的,首先你要知道路标点在相机坐标系的位置(很多二维码读码器的关系恰好相反,是相机在二维码的坐标系),然后要知道相机坐标系和小车坐标系(一般为base_link)之间的关系。中间用tf_broadcaster_发出来便于查看是否设置正确 void Node::HandleLandmarkMessage( const int trajectory_id, const std::string& sensor_id, const ca

南北粉面馆 2431

100天精通Python(可视化篇)——第98天:Pyecharts绘制多种炫酷日历图参数说明+代码实战

一、日历图介绍 二、基础配置 1. 配置项类 2. 添加函数 3. 日期标签配置 4. 坐标系配置 三、日历图实战 1. 基础日历图 2. 日历热图

努力让自己发光,对的人才能迎着光而来 2万+

Linux环境ZooKeeper安装配置及使用

Linux环境ZooKeeper安装配置及使用一、ZooKeeper1.1 zookeeper作用1.2 zookeeper角色1.3 zookeeper功能二、集群规划三、安装流程(1)单节点安装——hadoop01(2)配置zoo.cfg文件(3)配置参数解读(4)集群操作(5)选举机制四、命令行操作(1)配置环境变量:(2)启动zookeeper集群(3)查看zookeeper状态(4)启动...

爱是与世界平行 757

vue:npm安装pnpm报错,npm ERR! code ENOTFOUND,npm ERR! syscall getaddrinfo,npm ERR! errno ENOTFOUND详细排查解决!

vue2 vue3,npm install -g pnpm 安装出现错误,安装pnpm及解决安装失败问题,解决 npm无法安装pnpm问题,npm 安装 pnpm 时 报错 npm ERR! code ENOTFOUND,pnpm无法安装报错,vue npm install -g pnpm安装报错,request to http://registry.cnpmjs.org/pnpm failed, reason: getaddrinfo ENOTFOUND registry.cnpmjs.org,安装pnp

✅ 精选推荐文章 3608

ZooKeeper学习笔记(4)分布式部署

分布式安装部署 1)分布式集群规划: 在服务器server01、server02、server03三个节点上部署zookeeper 2)解压安装 #解压zookeeper安装包到目录/opt/software/下 tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/software/ #同步/opt/software/zookeeper-3.4.10目录到其他服务器 xsync /opt/software/zookeeper-3.4.10/ 3)配置服务器编号 #在/opt

fuu123f的博客 133

实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

该验证码是异形滑块验证码中的一种,缺口旋转+偏移的处理需要你有很好的图像处理知识,能很好的处理透明通道,同时,该验证码需要你能很好的处理缺口和背景之间匹配的关系,该验证码的处理难点就是两个缺口之间如何找到正确的,两个检测框都有很强的相似度,且加上背景图的干扰,在图像处理和有优化上难度大大增加。

码王吴彦祖的博客 2015

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Hadoop(3)—— Zookeeper(4)—— zookeeper服务的启动和关闭

1. 启动 zookeeper 服务 分别在hadoop01、hadoop02、hadoop03中, 输入:zkServer.sh start 2. 查看 zookeeper 角色 查看在确保每台主机都启动了服务下,分别在hadoop01、hadoop02、hadoop03中, 输入:zkServer.sh status 3. 关闭zookeeper 服务 输入:zkServer.sh status ...

weixin_54348877的博客 2486

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Apache版本的Hadoop HA集群启动详细步骤【包括Zookeeper、HDFS HA、YARN HA、HBase HA】(图文详解)...

    不多说,直接上干货!   1、先每台机器的zookeeper启动(bigdata-pro01.kfk.com、bigdata-pro02.kfk.com、bigdata-pro03.kfk.com)   2、启动zkfc(bigdata-pro01.kfk.com上)   [kfk@bigdata-pro01 hadoop-2.6.0]$ pw...

weixin_30384217的博客 256

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

openEuler/bigdata部署实战:HBase 2.2.5集群搭建与优化终极指南

前往项目官网免费下载:[https://ar.openeuler.org/ar/](https://ar.openeuler.org/ar/?utm_source=csdn_blog) 在当今大数据时代,分布式数据库技术已成为企业数据处理的核心支撑。HBase作为Apache Hadoop生态系统中的重要组件,以其高可靠性、高性能和可伸缩性而闻名。本文将为您详细介绍在openEuler操作系统上

gitblog_06869的博客 150

在openEuler 24.03上搞定Kafka 3.3.1集群:从下载到一键启停脚本的保姆级教程

本文提供在openEuler 24.03上部署Kafka 3.3.1分布式集群的完整教程,涵盖环境准备、配置优化、一键启停脚本开发及性能调优。针对国产操作系统特性解决兼容性问题,助力企业快速构建高可用实时数据处理平台。

weixin_30505225的博客 429

zookeeper 集群操作

zookeeper 集群操作,包括集群部署、选举机制、客户端命令操作、客户端 API 操作以及客户端向服务端写数据流程等内容

快乐的小三菊的博客 2598

zookeeper入门到精通03——zookeeper集群搭建

zookeeper集群搭建3.1 多虚拟机环境搭建3.2 zookeeper集群搭建 3.1 多虚拟机环境搭建 我们需要搭建zookeeper集群,而由于zookeeper的的服务器数量需要设置为单数(前文介绍了原因),一个zookeeper集群至少需要三个zookeeper服务,因此我们需要搭建三台虚拟主机。 (1)将之前的虚拟机重命名为zookeeper01。 (2)进行网络配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 再增加 VMWARE左上角点击编

半旧518的博客 5365

【zookeeper03】消息队列与微服务之zookeeper集群部署

ZooKeeper集群用于解决单点和单机性能及数据高可用等问题。ZAB(ZooKeeper Atomic Broadcast 原子广播) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

运维&陈同学的博客 1746

zookeeper入门到精通04——zookeeper集群选举与集群操作

4.zookeeper集群选举与集群操作4.1 集群选举机制4.1.1 第一次启动4.1.2 非第一次启动4.2 zookeeper启动停止脚本4.2.1 脚本编写4.2.2 脚本测试 4.1 集群选举机制 4.1.1 第一次启动 这里假设有5台服务器。 其实我们稍微总结一下,原来第一次选举就是选举myid 在中位的那台服务器啊,果然大佬都是站在c位的。但是这是有条件的,条件就是我们按照myid的顺序来启动服务器,如果不是那这个规律就不成立,只能够总结成为超过半数人参与选举的情况下,出身最好(my

半旧518的博客 2429

二, 对Zookeeper集群的 命令行操作, API操作 以及 Zookeeper选举机制

文章目录三, Zookeeper集群操作3.1 集群操作3.1.1 Zookeeper在集群上的安装步骤1. 集群内单主机安装步骤2. 配置服务器编号步骤3. 配置zoo.cfg步骤4. 集群操作Zookeeper 启/停/状态脚本3.1.2 ZooKeeper选举机制选举机制一, 初次启动时选举机制二, 非初次启动时(待理解)3.2 客户端 命令行 操作3.2.1 命令行语法3.2.2 znode 节点数据信息1. 查看当前znode节点所包含的内容2. 查看当前znode节点的详细数据3.2.3 zno

菜菜的大数据开发の路 739

Zookeeper集群搭建

前期准备: 安装jdk(主页搜 jdk 有教程) 同步集群时间(主页搜 时钟同步 有教程) 关闭防火墙 主机与ip映射配置 下载安装包、解压 例如: tar -zxvf zookeeper-3.4.5.tar.gz -C /export/servers 修改环境变量(注意:3台zookeeper都需要修改) 进入 vi /etc/profile.d/zookeeper.sh 添加 export ZOOKEEPER_HOME=/export/servers/zookeeper-3.4.5

tian_1_2_3的博客 1万+

zookeeper集群搭建

搭建前提 1.需要安装好jdk 2.检测集群时间是否同步 3.检测防火墙是否关闭 4.检测主机 ip映射有没有配置 步骤: 第一步: 将安装包解压 tar -zxvf zookeeper-3.4.5.tar.gz mv zookeeper-3.4.5 zookeeper(更名可有可无,我这里更名是为了后面路径写起来方便) 第二步: 修改环境变量(注意:有几台服务器修改几台) vi /etc/profile.d/zookeeper.sh(在profile.d里创建zookeeper.sh并编辑)

qq_21853321的博客 1万+
上一篇: 02 | Zookeeper本地安装
下一篇: 04 | Zookeeper客户端命令行操作
走过冬季
博客等级 码龄9年 1609粉丝 341原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值