搭建zookeeper高可用集群详细步骤
目录
一、虚拟机设置
1.新建一台虚拟机并克隆三台,配置自定义
2.修改四台虚拟机的主机名并立即生效
3.修改四台虚拟机的网络信息
4.重启四台虚拟机的网络服务并测试网络连接
5.重启四台虚拟机,启动后关闭四台虚拟机的防火墙
6.在第一台虚拟机的/etc/hosts下面配置这四台主机映射
7.将/etc/hosts安全分发到另外三台虚拟机
8.配置四台虚拟机免密登录
9.设置四台虚拟机时间同步
二、自动安装JDK和zookeeper
1.在第一台虚拟机的/opt/目录下新建install、soft和shell三个文件
2.上传jdk、zoookeeper压缩包到第一台虚拟机/opt/install/目录下
3.编写自动安装jdk和zookeeper脚本并赋予执行权限
4.执行/opt/shell/autoinstall.sh脚本
5.重启环境变量查看是否安装成功
6.来到/opt/soft/zk345/conf目录下,修改zoo.cfg文件,添加下面的内容
7.来到/opt/soft/zk345目录下,删除datas目录下所有的文件
8.将JDK和环境变量分发给三台虚拟机,将zookeeper分发给两台虚拟机
9.删除三台虚拟机的/opt/soft/zk345/datas目录下的所有文件,配置myid
10.编辑zookeeper集群开启脚本——zkop.sh
11.编写查询集群启动状态信息批量展示脚本——showjps.sh
12.执行zkop.sh和showjps.sh脚本,开启zookeeper集群
13.查看zookeeper集群状态
14.关闭zookeeper集群
一、虚拟机设置
1.新建一台虚拟机并克隆三台,配置自定义
也可以新建好一个,然后导出ovf,再打开

2.修改四台虚拟机的主机名并立即生效
[root@localhost ~]# hostnamectl set-hostname 主机名[root@localhost ~]#bash[root@主机名~]# hostname
主机名
3.修改四台虚拟机的网络信息
vim /etc/sysconfig/network-script/ifcfg-ens33
4.重启四台虚拟机的网络服务并测试网络连接
systemctl restart network.service
# 或者
service network restart
5.重启四台虚拟机,启动后关闭四台虚拟机的防火墙
[root@ant165 ~]# systemctl stop firewalld
[root@ant165 ~]# systemctl disable firewalld.service
6.在第一台虚拟机的/etc/hosts下面配置这四台主机映射
[root@ant165 ~]# vim /etc/hosts

7.将/etc/hosts安全分发到另外三台虚拟机
[root@ant165 .ssh]# scp /etc/hosts root@ant166:/etc/
hosts 100% 250 18.3KB/s 00:00
[root@ant165 .ssh]# scp /etc/hosts root@ant167:/etc/
hosts 100% 250 162.4KB/s 00:00
[root@ant165 .ssh]# scp /etc/hosts root@ant168:/etc/
hosts 100% 250 169.3KB/s 00:00
8.配置四台虚拟机免密登录
[root@ant165 ~]# ssh ant165
The authenticity of host 'ant165 (192.168.180.165)' can't be established.
ECDSA key fingerprint is SHA256:hQzFzPZt1T9MooVcHRLOnmC4hYlNsaG28J65Ovi10uc.
ECDSA key fingerprint is MD5:46:97:1a:6c:02:8d:17:d6:98:d9:81:85:0e:a8:ca:5e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ant165,192.168.180.165' (ECDSA) to the list of known hosts.
root@ant165's password:
Last login: Wed Feb 15 00:01:20 2023 from 192.168.180.1
[root@ant165 ~]# ll -al
total 32
dr-xr-x---. 3 root root 163 Feb 15 00:04 .
dr-xr-xr-x. 17 root root 224 Feb 14 23:13 ..
-rw-------. 1 root root 1419 Feb 14 23:14 anaconda-ks.cfg
-rw-------. 1 root root 312 Feb 15 00:01 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
drwx------. 2 root root 25 Feb 15 00:04 .ssh
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
-rw-------. 1 root root 575 Feb 15 00:04 .viminfo
[root@ant165 ~]# cd .ssh
[root@ant165 .ssh]# ll
total 4
-rw-r--r--. 1 root root 184 Feb 15 00:04 known_hosts
配置四台虚拟机免密登录:
[root@ant165 .ssh]# ssh-keygen -t rsa -P ''[root@ant165 .ssh]# ssh-copy-id ant165#免密登录,两个命令都可以
[root@ant165 .ssh]# ssh ant165 | ssh -p22 root@ant165
在其他三台虚拟机上重复上面的命令
[root@ant165 .ssh]# ssh-keygen -t rsa -P ''[root@ant165 .ssh]# ssh-copy-id ant165
[root@ant165 .ssh]# ssh-copy-id ant166
[root@ant165 .ssh]# ssh-copy-id ant167
[root@ant165 .ssh]# ssh-copy-id ant168
9.设置四台虚拟机时间同步
[root@ant165 ~]# yum -y install ntpdate[root@ant165 ~]# ntpdate time.windows.com
14 Feb 16:33:52 ntpdate[11365]: step time server 40.81.94.65 offset -28800.832564 sec[root@ant165 ~]# date
Tue Feb 14 16:33:54 CST 2023[root@ant165 ~]# crontab -e
*/10 * * * * /usr/sbin/ntpdate time.windows.com# 重新加载脚本
[root@ant165 ~]# systemctl reload crond# 重启脚本
[root@ant165 ~]# systemctl restart crond# 查看脚本状态
[root@ant165 ~]# systemctl status crond
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2023-02-14 16:36:13 CST; 8s agoProcess: 11376 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)Main PID: 11386 (crond)CGroup: /system.slice/crond.service└─11386 /usr/sbin/crond -nFeb 14 16:36:13 ant165 systemd[1]: Started Command Scheduler.
Feb 14 16:36:13 ant165 systemd[1]: Starting Command Scheduler...
Feb 14 16:36:13 ant165 crond[11386]: (CRON) INFO (RANDOM_DELAY will be s...)
Feb 14 16:36:13 ant165 crond[11386]: (CRON) INFO (running with inotify s...)
Feb 14 16:36:13 ant165 crond[11386]: (CRON) INFO (@reboot jobs will be r...)
Hint: Some lines were ellipsized, use -l to show in full.
二、自动安装JDK和zookeeper
1.在第一台虚拟机的/opt/目录下新建install、soft和shell三个文件
[root@ant165 opt]# mkdir install
[root@ant165 opt]# mkdir soft
[root@ant165 opt]# mkdir shell
2.上传jdk、zoookeeper压缩包到第一台虚拟机/opt/install/目录下

3.编写自动安装jdk和zookeeper脚本并赋予执行权限
[root@ant165 shell]# vim autoinstall.sh#! /bin/bash
echo 'auto install begining...'# global var
jdk=trueif [ "$jdk" = true ];thenecho 'jkd install set true'echo 'setup jdk 8'tar -zxf /opt/install/jdk-8u321-linux-x64.tar.gz -C /opt/softmv /opt/soft/jdk1.8.0_321 /opt/soft/jdk180sed -i '73a\export PATH=$PATH:$JAVA_HOME/bin' /etc/profilesed -i '73a\export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profilesed -i '73a\export JAVA_HOME=/opt/soft/jdk180' /etc/profilesed -i '73a\# JAVA_HOME' /etc/profileecho 'setup jdk8 success!!!'
fi
# global var
zk=truehostname=`hostname`
if [ "$zk" = true ];thenecho 'zookeeper install set true'echo 'setup zookeeper-3.4.5-cdh5.14.2.tar.gz'tar -zxf /opt/install/zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/mv /opt/soft/zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk345cp /opt/soft/zk345/conf/zoo_sample.cfg /opt/soft/zk345/conf/zoo.cfgmkdir -p /opt/soft/zk345/datassed -i '12c dataDir=/opt/soft/zk345/datas' /opt/soft/zk345/conf/zoo.cfgecho "server.0=$hostname:2287:3387" >> /opt/soft/zk345/conf/zoo.cfgecho "0" > /opt/soft/zk345/datas/myidsed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profilesed -i '73a\export ZOOKEEPER_HOME=/opt/soft/zk345' /etc/profilesed -i '73a\#ZOOKEEPER_HOME' /etc/profileecho 'setup zookeeper success!!!'
fi
赋予执行权限
[root@ant165 shell]# chmod 777 ./autoinstall.sh

4.执行/opt/shell/autoinstall.sh脚本

5.重启环境变量查看是否安装成功
[root@ant165 shell]# source /etc/profile[root@ant165 shell]# javac[root@ant165 shell]# zkServer.s
-bash: zkServer.s: command not found
[root@ant165 shell]# zkServer.sh start
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED[root@ant165 shell]# jps
11731 QuorumPeerMain
11753 Jps[root@ant165 shell]# zkServer.sh status
JMX enabled by default
Using config: /opt/soft/zk345/bin/../conf/zoo.cfg
Mode: standalone
出现上面的信息就说明zookeeper单机版安装成功
6.来到/opt/soft/zk345/conf目录下,修改zoo.cfg文件,添加下面的内容

7.来到/opt/soft/zk345目录下,删除datas目录下所有的文件
[root@ant165 zk345]# rm -rf ./datas/*
8.将JDK和环境变量分发给三台虚拟机,将zookeeper分发给两台虚拟机
# 分发/opt下的soft目录:
[root@ant165 ~]# scp -r /opt/soft/ root@ant166:/opt/[root@ant165 ~]# scp -r /opt/soft/ root@ant167:/opt/[root@ant165 ~]# scp -r /opt/soft/ root@ant168:/opt/
profile # 分发JDK:
[root@ant165 datas]# scp -r /opt/soft/jdk180/ root@ant166:/opt/soft/[root@ant165 datas]# scp -r /opt/soft/jdk180/ root@ant167:/opt/soft/[root@ant165 datas]# scp -r /opt/soft/jdk180/ root@ant168:/opt/soft/# 分发zookeeper:
[root@ant165 datas]# scp -r /opt/soft/zk345/ root@ant166:/opt/soft/[root@ant165 datas]# scp -r /opt/soft/zk345/ root@ant167:/opt/soft/# 分发环境变量:
[root@ant165 datas]# scp /etc/profile root@ant166:/etc/
profile 100% 2032 200.1KB/s 00:00 [root@ant165 datas]# scp /etc/profile root@ant167:/etc/
profile 100% 2032 1.3MB/s 00:00 [root@ant165 shell]# scp /etc/profile root@ant168:/etc/
profile 100% 2032 1.6MB/s 00:00
[root@ant165 shell]# ./showjps.sh
9.删除三台虚拟机的/opt/soft/zk345/datas目录下的所有文件,配置myid
[root@ant165 datas]# rm -rf /opt/soft/zk345/datas/*
[root@ant165 datas]# echo "0" > myid[root@ant166 datas]# rm -rf /opt/soft/zk345/datas/*
[root@ant166 datas]# echo "1" > myid[root@ant167 datas]# rm -rf /opt/soft/zk345/datas/*
[root@ant167 datas]# echo "2" > myid
10.编辑zookeeper集群开启脚本——zkop.sh
#! /bin/bash
case $1 in
"start"){for i in ant165 ant166 ant167dossh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh start"done};;
"stop"){for i in ant165 ant166 ant167dossh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh stop"done};;"status"){for i in ant165 ant166 ant167dossh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh status"done
};;
esac
赋予执行权限
[root@ant165 shell]# chmod 777 ./zkop.sh
11.编写查询集群启动状态信息批量展示脚本——showjps.sh
#! /bin/bash
for i in ant165 ant166 ant167 ant168
doecho ---------------- $i 服务启动状态 -----------------ssh $i "source /etc/profile; /opt/soft/jdk180/bin/jps "
done
赋予执行权限
[root@ant165 shell]# chmod 777 ./showjps.sh
12.执行zkop.sh和showjps.sh脚本,开启zookeeper集群

zookeeper集群成功开启!!!
13.查看zookeeper集群状态

14.关闭zookeeper集群

后续搭建Hadoop集群参考博文《基于zookeeper的Hadoop集群搭建详细步骤》
相关文章:
搭建zookeeper高可用集群详细步骤
目录 一、虚拟机设置 1.新建一台虚拟机并克隆三台,配置自定义 2.修改四台虚拟机的主机名并立即生效 3.修改四台虚拟机的网络信息 4.重启四台虚拟机的网络服务并测试网络连接 5.重启四台虚拟机,启动后关闭四台虚拟机的防火墙 6.在第一台虚拟机的/e…...
Scala 变量和数据类型(第二章)
第二章、变量和数据类型2.1 注释2.2 变量和常量(重点)2.3 标识符的命名规范2.4 字符串输出2.5 键盘输入2.6 数据类型(重点)回顾:Java数据类型Scala数据类型2.7 整数类型(Byte、Short、Int、Long)…...
【JVM基础内容速查表】JVM基础知识 默认参数 GC命令 工具使用 JVM参数设置、说明、使用方法、注意事项等(持续更新)
目录一、JVM前置知识1. -X、-XX含义2. JVM参数值的类型和设置方式3. 查看GC时用到的命令和JVM参数4. 查看JVM默认参数二、垃圾收集器选择-XX:UseSerialGC-XX:UseParallelGC-XX:UseParallelOldGC-XX:UseParNewGC-XX:UseConcMarkSweepGC-XX:UseG1GC三、垃圾收集器特有参数1. ParN…...
C语言经典编程题100例(61~80)
目录61、练习7-7 矩阵运算62、练习7-8 方阵循环右移63、习题6-1 分类统计字符个数64、习题6-2 使用函数求特殊a串数列和65、习题6-4 使用函数输出指定范围内的Fibonacci数66、习题6-5 使用函数验证哥德巴赫猜想67、习题6-6 使用函数输出一个整数的逆序数68、练习8-2 计算两数的…...
toxssin:一款功能强大的XSS漏洞扫描利用和Payload生成工具
关于toxssin toxssin是一款功能强大的XSS漏洞扫描利用和Payload生成工具,这款渗透测试工具能够帮助广大研究人员自动扫描、检测和利用跨站脚本XSS漏洞。该工具由一台HTTPS服务器组成,这台服务器将充当一个解释器,用于处理恶意JavaScript Pay…...
Keepalived与HaProxy的协调合作原理分析
Keepalived与HaProxy的协调合作原理分析keepalived与haproxy合作场景更好的理解方式协调合作中考虑的问题一、Keepalived以TCP/IP模型角度来分析:二、HaProxy总结:协调合作中考虑的问题的答案虚拟ip:虚拟IP技术,就是一个未分配给客…...
抖音如何找到博主视频推广?筛选博主要看那些数据
近年来抖音视频推广越来越成为企业宣传的热门选择,今天就来和大家聊聊抖音如何找到博主视频推广,以及几种主流的对接方式。一、什么是抖音博主视频推广?抖音博主视频推广就是通过博主的影响力和粉丝量,吸引用户到短视频平台进行观看相关合作…...
Win11的两个实用技巧系列之如何关闭登录密码?
Win11如何关闭登录密码?Win11关闭登录密码的两种解决方法win11是电脑更新后的全新系统,每次开启需要输入密码。有的用户嫌麻烦想要关闭,下面小编就为大家带来了关闭的方法,一起来看看吧有不少用户在升级或者第一次使用Win11系统的时候&#…...
润普挂卷失败之老卷宗对接NP无法获取案件信息问题排查
润普挂卷失败之老卷宗对接NP无法获取案件信息问题排查 写在最前面 根因:NP的dzjzzzfw与老卷宗dzjz服务用的zookeeper不是同一个,且老卷宗指向的zookeeper没有任何一个匹配的dzjzzzfw。仅有消费者,没有任何生产者,导致老卷宗通过…...
产品经理面试题思考及回答思路(一)
求职产品助理/经理岗位,转行产品岗面试真题 关于产品经理岗位能力的思考: 什么是产品经理?为什么要当/选择做产品经理?怎么理解产品经理?如何理解产品经理的价值?产品日常工作有哪些?工作流程…...
Routability-Driven Macro Placement with Embedded CNN-Based Prediction Model
Routability-Driven Macro Placement with Embedded CNN-Based Prediction Model 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE) DOI: 10.23919/DATE.2019.8715126 目录Abstract一、Introduction二、PROBLEM FORMULATION AND PRELIMINARIE…...
论一个上班族如何一次性通过PMP考试
PMP是我工作后考取的一个证书。从准备到通过,花了大约三个月的时间。我之前在某家互联网公司从事程序员的工作,工作一段时间后,天天敲着代码,改着bug,感觉比较迷茫,不知道未来的发展在哪里,都说…...
Web前端:使用Angular CLI时的最佳实践和专业技巧
在web开发业务中,构建高性能的应用程序是首要因素。此外,用开发人员最流行的语言开发一个健壮的网站将始终为构建高功能的网站提供适当的基础网站。相比之下,不可否认,Angular CLI是建立得最好且正在成长的框架之一。Angular CLI简…...
从0到1一步一步玩转openEuler--15 openEuler使用DNF管理软件包
文章目录15.1 搜索软件包15.2 列出软件包清单15.3 显示RPM包信息15.4 安装RPM包15.5 下载软件包15.6 删除软件包DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸…...
【java】Spring Boot --spring boot项目整合xxl-job
文章目录1、源码下载地址2.文档地址3.源码结构4.初始化数据库脚本5.配置调度中心xxl-job-admin5.1 修改调度中心配置文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties5.2 启动调度中心5.3 访问调度中心管理界面6.创建执行器项目6.3 载入配置…...
视图、索引、存储过程、触发器
视图、索引、存储过程、触发器 group by补充: 规范来说,分组查询中,select后的字段只能是group by的字段或者是聚合函数。mysql在这有一个小优化,分组后如果某个字段的所有记录相同,同样可以select。 视图 视图是虚拟…...
ImportError: cannot import name ‘FlattenObservation‘ from ‘gym.wrappers‘ 解决方案
问题描述 今天在运行openai给出的ppo2的baseline的时候遇到了以下bug: File "/root/code/baselines_openai/baselines/common/cmd_util.py", line 12, in <module> from gym.wrappers import FlattenObservation, FilterObservation ImportErr…...
大件传输的9种方法
不知道你有没有试过用电子邮件进行大文件传输,由于文件大小的限制,往往会发送失败。同时,一些文件共享服务对传输的文件有大小限制,使得你无法与朋友分享电影片段或向客户展示你的工作样本。还有一些要求你注册一个账户࿰…...
将vue2的项目《后台管理模式》转变为vue3版本 (一)
本篇主要讲了将v2项目转变为v3版本,以本人经验愿于各位分享 希望大家可以一起交流!!!! 文章目录一、app 出口位置二 、 index.js 路由配置三、package.json 文件四、 main.js 既然安装插件那就需要引入五、 跨域问题总…...
苹果手机怎么下载手机铃声?图文教程,快速学会
很多小伙伴喜欢使用苹果手机,可是苹果手机里的铃声自己并不是很喜欢听,想要下载一些好听的歌曲更换自己的手机铃声。苹果手机怎么下载手机铃声?别着急,今天小编以图文的方式,教教大家如何使用苹果手机下载手机铃声。 苹…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
