zookeeper集群安装部署和集群异常处理

news2024/11/16 20:35:47
  1. 准备jdk和zookeeper安装包【官网即可下载】

zookeeper-3.5.1-alpha.tar.gz

jdk1.7.0_8020200612.tar

  1. 准备三台linux虚拟机【具体以项目实际需要为准】,并安装jdk和zookeeper

虚拟机地址如下:194.1.1.86(server.1)、194.1.1.74(server.2)、194.1.1.45(server.3)

  1. 安装zookeeper(/app/soft/安装目录自定义)

3.1、分别将zookeeper-3.5.1-alpha.tar.gz安装包拷贝至194.1.1.86、194.1.1.74、194.1.1.45服务器的/app/soft/目录,然后执行以下命令解压:

[domains@ensemble1 soft]$ tar -zxvf zookeeper-3.5.1-alpha.tar.gz zookeeper

然后进入zookeeper目录创建data、logs目录

[domains@ensemble1 zookeeper]$ pwd

/app/soft/zookeeper

[domains@ensemble1 zookeeper]$ mkdir logs data

3.2、配置zoo.cfg文件【3台虚拟机分别执行】:

进入conf目录执行以下命令拷贝创建zoo.cfg文件

[domains@ensemble1 conf]$ cpzoo_sample.cfgzoo.cfg

[domains@ensemble1 conf]$ ll

vi zoo.cfg配置集群信息1/2/3要与对应服务器和myid文件一致,其中2888是数据同步和通信端口,3888是选举端口:

server.1= 194.1.1.86:2888:3888

server.2= 194.1.1.74:2888:3888

server.3= 194.1.1.45:2888:3888

dataDir=/app/soft/zookeeper/data【配置zookeeper数据文件存储目录】

3.3、在服务存放zookeeper数据文件目录执行以下命令穿件myid文件,并分别写入各节点对应的数字,例如在194.1.1.86的myid文件中写入1:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 1 >myid

194.1.1.74的myid文件中写入2:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 2 >myid

194.1.1.45的myid文件中写入3:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 3>myid

3.4、可以根据需要修改日志路径:

日志文件输入路径在/app/soft/zookeeper/bin/zkEnv.sh变量里找到

if [ "x${ZOO_LOG_DIR}" = "x" ]

then

    ZOO_LOG_DIR="$ZOOKEEPER_PREFIX/logs"

Fi

  1. 启动zookeeper集群,分别进入3台虚拟机的/app/soft/zookeeper/bin/目录执行以下命令启动zookeeper服务:

[domains@ensemble1 bin]$ ./zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /app/soft/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

然后查看当前服务状态:

[domains@ensemble1 bin]$ ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /app/soft/zookeeper/bin/../conf/zoo.cfg

Client port found: 2181. Client address: localhost.

Mode: follower

注意:3台服务器的zookeeper服务都启动完成后,查看zookeeper状态会发现3台服务会选举一各leader节点和2个follower节点。

  1. 验证zookeeper集群是否搭建完成:

输入以下命令:[domains@ensemble1 bin]$ ./zkCli.sh -server 194.1.1.74:2181

输入ls/path

【查看zookeeper集群中注册的服务,在zookeeper中各服务的存储Id,客户端

调用服务时也是通过id值找到集群服务中对应的应用服务然后调用】

  1. 集群中各节点宕机后的影响和处理方式:

以上3个节点的zookeeper集群中会选举出一个leader和2个follower节点,follower几点负责接收客户端的请求并处理,leader节点负责服务端服务id的写入并同步给follower节点。

6.1、2个follower节点中任意一个节点挂掉

当2个follower节点中任意一个节点挂掉是不会影响zookeeper集群对外提供服务,这个时候恢复集群只需要把对应宕机节点的zookeeper服务重新启动即可。

6.2、 2个follower节点同时宕机

当2个follower节点同时宕机挂掉是不会影响zookeeper集群对外提供服务,但是应用服务后台会提示zookeeper连接拒绝异常:

2024-03-15 15:25:13,108 : eaip-XA1010080-0 WARN main-SendThread(194.1.35.8:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x318dd1c13950000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:25:13,612 : eaip-XA1010080-0 WARN main-SendThread(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x21eff7c26120000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)这个时候恢复集群只需要把对应宕机节点的zookeeper服务重新启动即可。

6.2、leader节点宕机挂掉

当leader节点宕机挂掉后,应用服务是不会出现异常。这个时候2个follower节点会自动选举一个新的leader节点,此时只需要把宕机的节点重新启动即可。

6.3、leader节点和一个follower节点同时宕机

当eader节点和一个follower节点同时宕机掉后,客户端调用应用服务会出现异常。但是这个时候zookeeper集群服务应挂掉,需要重启3台服务器zookeeper服务器。       

2024-03-15 15:36:59,995 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.35.8:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x10f9f2774430000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

         atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

         at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

         at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

         at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:37:00,330 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x0 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

         atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

         at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

         at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

         at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:37:00,912 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x0 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

6.4、3个集群节点同时宕机

需要重启3台服务器zookeeper服务器。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Alma Linux - Primavera P6 EPPM 安装及分享

引言 继上一期发布的Rocky Linux版环境发布之后,近日我又制作了基于Alma Enterprise Linux 的P6虚拟机环境,同样里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机,请先与Oracle Primaver…

2024-03-18 作业

作业要求: 1> 将广播发送端和接收端各实现一遍 2> 将组播发送端和接收端各实现一遍 3> 将流式域套接字的服务器端和客户端各实现一遍 1:将广播发送端和接收端各实现一遍 运行代码: 服务端: 客户端: 运行截…

FREERTOS任务调度和切换

我们已经学会了 FreeRTOS 的任务创建和删除,挂起和恢复等基本操作,并且也学习了分析FreeRTOS 源码所必须掌握的知识:列表和列表项。但是任务究竟如何被创建、删除、挂起和恢复的?系统是怎么启动的等等这些我们还不了解&#xff0c…

html--花瓣

代码 <!DOCTYPE html> <html lang"en" ><head> <meta charset"UTF-8"> <title>Petals</title><link rel"stylesheet" href"css/style.css"></head><body><div class"…

探索ChatGPT时代下的下一代信息检索系统:机遇与挑战

1 Introduction 2022 年 11 月 30 日&#xff0c;OpenAI 推出了 ChatGPT&#xff0c;这是一款由先进的 GPT3.5 和更高版本的 GPT-4 生成语言模型提供支持的 AI 聊天机器人应用程序。该应用迅速吸引了全球超亿用户&#xff0c;创下了产品快速传播的新纪录。 它能够以对话的方式…

Linux docker2--镜像及容器操作-nginx部署示例

一、上一篇已经完成了docker的基础环境搭建&#xff0c;和docker的安装。不清楚的小伙伴可以自己找上一篇看一下。本例以部署nginx为例展示 二、镜像相关 1、切换docker的镜像源为阿里云 命令&#xff1a; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <&l…

数据库管理-第161期 数据库,走着瞧(20240318)

数据库管理161期 2024-03-18 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09;MySQLSACC走着瞧RACAIOps 总结 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&am…

php7.3.4连接sqlserver(windows平台)

前言 有个项目需要手上laravel连接客户的sqlserver数据库读取数据&#xff0c;故在本地开发的lnmp环境中&#xff0c;php需要增加扩展 过程 从微软官网下载sqlsrv扩展,注意注意php版本&#xff0c;下载地址 解压的文件会有nts和ts两个版本&#xff0c;本地打开phpinfo查看 将…

大型机开发入门

这里写目录标题 零 大型机应用场景1 IBM官方网站1.1 保险业务1.2 证券业务1.3 银行业务 2 日语2.1 常见口语 一 Cobol 古董1 cobol 语言的前景1.1 tiobe编程网站排名1.2 cobol &#xff08;Common Business-Oriented Language&#xff09; 2 环境安装及开发工具1.1 VScode Gnu…

最小化战斗力差距——算法思路

题目链接&#xff1a;1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn) 可分析&#xff0c;把一个数组分成两组&#xff0c;求一组的最大值与另一组的最小值的差值的绝对值最小&#xff0c;可以转换为求任意两个相邻数字之间的最小插值的绝对值。 可看图示&#xff1a; package lan…

Morris法解决二叉树问题,展开链表及中序遍历

问题一&#xff1a;二叉树展开成单链表 问题二&#xff1a;二叉树中序遍历 咋一看非常简单的两道题&#xff0c;但是如果我们加以一些限制&#xff0c;这两题就不简单了。对于这两道题&#xff0c;我们的空间复杂度都必须控制在O(1)。也就是说&#xff0c;迭代和递归全部失效…

Ventana Veyron V系列处理器架构分析

概述 Ventana的产品策略 计算die IO die&#xff08;友商产品/用户自定义^^&#xff09; Veyron V1 2022年12月发布&#xff0c;Ventana发布了全球首款基于RISC-V架构的服务器CPU——Veyron V1&#xff0c;号称性能可超越AMD EPYC 7763。 服务器级别的CPU IP chiplets解…

考研复习C语言进阶(4)

1. 为什么存在动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的方式有两个特点&#xff1a; 1. 空间开辟大小是固定的。 2. 数组在申明的时候&#…

2.7 ROC曲线相比P-R曲线有什么特点?

2.7 ROC曲线相比P-R曲线有什么特点&#xff1f; 前情提要&#xff1a; P-R曲线详见&#xff1a;2.2 什么是精确率&#xff08;Precision&#xff09;与召回率&#xff08;Recall&#xff09;&#xff1f;二者如何权衡&#xff1f;&#xff09; 2.4 ROC曲线是什么&#xff1f; 2…

海康威视相机SDK二次开发(JAVA语言)

目录 前言客户端创建虚拟相机示例代码保存图片程序运行结果修改需求 二次开发引入外部包对SaveImage.java文件进行修改保存图片saveDataToFile方法选择相机chooseCamera方法主方法 FileUtil类处理过期照片启动类与配置文件application.yml通过实体类读取yml启动类 SaveImage.ja…

2024.3.18

封装一个动物的基类&#xff0c;类中有私有成员&#xff1a;姓名&#xff0c;颜色&#xff0c;指针成员年纪 再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有&#xff1a;指针成员&#xff1a;腿的个数&#xff08;整型 int count&#xff0…

代码随想录算法训练营第25天|16.组合总和III|17.电话号码的字母组合

代码随想录算法训练营第25天|16.组合总和III|17.电话号码的字母组合 216.组合总和III 如果把 组合问题理解了&#xff0c;本题就容易一些了。 题目链接/文章讲解&#xff1a;https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 视频讲解&#xf…

如何在开放麒麟系统安装cpolar内网穿透实现公网环境下SSH远程连接

文章目录 1. 安装SSH服务2. 本地SSH连接测试3. openKylin安装Cpolar4. 配置 SSH公网地址5. 公网远程SSH连接小结 6. 固定SSH公网地址7. SSH固定地址连接 openKylin是中国首个基于Linux 的桌面操作系统开发者平台&#xff0c;通过开放操作系统源代码的方式&#xff0c;打造具有自…

强化PaaS平台应用安全:关键策略与措施

PaaS&#xff08;平台即服务&#xff0c;Platform-as-a-Service&#xff09;是一种云计算服务模式&#xff0c;可以为客户提供一个完整的云平台&#xff08;硬件、软件和基础架构&#xff09;以用于快捷开发、运行和管理项目&#xff0c;从而降低了企业云计算应用的高成本和复杂…

【晴问算法】入门篇—贪心算法—整数配对

题目描述 有两个正整数集合S、T&#xff0c;其中S中有n个正整数&#xff0c;T中有m个正整数。定义一次配对操作为&#xff1a;从两个集合中各取出一个数a和b&#xff0c;满足a∈S、b∈T、a≤b&#xff0c;配对的数不能再放回集合。问最多可以进行多少次这样的配对操作。 输入描…