搭建分布式ZooKeeper集群

title: 搭建分布式ZooKeeper集群
date: 2024-11-26 23:39:00
categories: 
- 服务器
tags:
- ZooKeeper
- 大数据

搭建分布式ZooKeeper集群

  • 本次实验环境:Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3

前提

首先配置好Hadoop集群

  • 为了配置方便,Hadoop集群的所有软件及文件位于/opt/module目录下

1. 修改主机名(域名)与IP地址的对应关系

规划功能

MasterSlave1Slave2
主节点从节点从节点
192.168.66.6192.168.66.7192.168.66.21
  • 如若在这之前,Hadoop已配置过此项,则只需记住已配置的数据,无须更改
cat >> /etc/hosts << EOF
# ------ZooKeeper主机名解析 配置--------
192.168.66.6 master 
192.168.66.7 slave1 
192.168.66.21 slave2  
EOF

2. 安装程序文件

  • 首先上传zookeeper的文件到服务器上,或直接进行以下的下载行为
# 使用wget命令下载zookeeper文件(二选一)
wget -P /tmp/ -c 'https://repo.huaweicloud.com/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3.tar.gz'

# 使用curl命令下载zookeeper文件(二选一)
curl -C - 'https://repo.huaweicloud.com/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3.tar.gz' -O /tmp/

# 解压文件到指定目录
tar -zxvf /tmp/apache-zookeeper-3.6.3-bin.tar.gz  -C /opt/module/

# 重名名文件夹
mv /opt/module/apache-zookeeper-3.6.3-bin/ /opt/module/zookeeper/

3. 配置用户环境变量

cat >>  ~/.bashrc << "EOF"

# ------------------- Zookeeper 配置--------------------
# 设置ZK_HOME环境变量,指向zookeeper安装目录
export ZK_HOME=/opt/module/zookeeper

# 将ZK_HOME的bin目录以及conf目录添加到PATH环境变量
export PATH=$PATH:$ZK_HOME/bin:$ZK_HOME/conf

# 将ZK_HOME的lib目录添加到CLASSPATH环境变量
export CLASSPATH=$CLASSPATH:$ZK_HOME/lib
# -------------------------------------------------
EOF
-----------------------------------------------------------
                          说明

举例   export PATH=$ZK_HOME/bin:$ZK_HOME/conf:$PATH

英文冒号代表分隔

这段代码表示
1. 当你输入一个命令时,shell会首先在"ZK_HOME"这个变量的"bin"子目录中查找,
3. 其次,若找不到,则在"ZK_HOME"这个变量的"conf"子目录中查找,
4. 最后,若找不到,则在"PATH"的指定目录中查找

-------------------------------------------------------------

4. 编写Zookeeper配置文件

# 文件重命名
mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
# 创建zookeeper的数据目录
mkdir /opt/module/zookeeper/data

# 创建zookeeper的节点信息
echo "1" > /opt/module/zookeeper/data/myid
# 更改Zookeeper的数据位置,并添加zookeeper的节点信息
# 这里的节点信息,根据一开始你自己的规划填写,也可以填写主机名

sed -i -e 's|dataDir=/tmp/zookeeper|dataDir=/opt/module/zookeeper/data|' \
-e '/dataDir=/a \
server.1=192.168.66.6:2888:3888\
server.2=192.168.66.7:2888:3888\
server.3=192.168.66.21:2888:3888' /opt/module/zookeeper/conf/zoo.cfg

5. 同步所需文件

# 同步到slave1机器
scp -r /opt/module/zookeeper/ root@slave1:/opt/module/
scp  ~/.bashrc root@slave1:/root

# 同步到slave2机器
scp -r /opt/module/zookeeper/ root@slave2:/opt/module/
scp  ~/.bashrc root@slave2:/root

6. 修改从节点Zookeeper配置文件

# 修改slave1的配置文件
ssh slave1 'echo "2" > /opt/module/zookeeper/data/myid'

# 修改slave2的配置文件
ssh slave2 'echo "3" > /opt/module/zookeeper/data/myid'

7. 环境变量生效

# master节点环境变量生效
source  ~/.bashrc

# slave1节点环境变量生效
ssh slave2 'source  ~/.bashrc'

# slave2节点环境变量生效
ssh slave2 'source  ~/.bashrc'

8. 后台启动Zookeeper

# master节点启动zookeeper
$ZK_HOME/bin/zkServer.sh start

# slave1节点启动zookeeper
ssh slave1 ' $ZK_HOME/bin/zkServer.sh start'

# slave2节点启动zookeeper
ssh slave2 ' $ZK_HOME/bin/zkServer.sh start'

9. 查看Zookeeper状态

# 查看master节点的zookeeper状态
$ZK_HOME/bin/zkServer.sh status

# 查看slave1节点的zookeeper状态
ssh slave1 ' $ZK_HOME/bin/zkServer.sh status '

# 查看slave2节点的zookeeper状态
ssh slave2 ' $ZK_HOME/bin/zkServer.sh status '

备注

若出现It is probably not running

# 报错信息
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Error contacting service. It is probably not running.

请关闭防火墙

# 关闭防火墙
systemctl stop firewalld

# 禁止防火墙开机自启
systemctl disabled firewalld

若不想关闭防火墙,则需要放行防火墙的2888以及3888端口

# 放行防火墙2888端口
firewall-cmd --add-port=2888/tcp --permanent --zone=public 

# 放行防火墙3888端口
firewall-cmd --add-port=3888/tcp --permanent --zone=public 

# 重载防火墙配置
firewall-cmd --reload 

Zookeeper前台运行

该命令用于启动 ZooKeeper 服务,并且在前台运行。
ZooKeeper 的所有日志和输出都会直接显示在控制台上,而不是写入日志文件

通常用于调试和检查 ZooKeeper 运行时的异常情况

# 前台运行命令
/opt/module/zookeeper/bin/zkServer.sh start-foreground

停止Zookeeper

# 停止master节点的zookeeper服务
/opt/module/zookeeper/bin/zkServer.sh stop

# 停止slave1节点的zookeeper服务
ssh slave1 '/opt/module/zookeeper/bin/zkServer.sh stop'

# 停止slave2节点的zookeeper服务
ssh slave2 '/opt/module/zookeeper/bin/zkServer.sh stop'

参考文档

  1. 解决问题Client port found: 2181. Client address: localhost. Client SSL: false.-CSDN博客

  2. Linux环境下zookeeper的安装教程(超详细!!)_linux zk安装-CSDN博客

  3. zookeeper集群搭建步骤(超详细)-CSDN博客

  4. ZooKeeper JMX enabled by default Using config…完美解决-CSDN博客

  5. 启动ZooKeeper报错ZooKeeper JMX enabled by default Using config: /usr/Local/ zookeeper/bin/ . ./conf/zoo.-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)

在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频&#xff0c;并生成多个相位偏移或频率不同的时钟信号&#xff1a; 1. 生成 PLL 模块 在 Quartus II 中&#xff1a; 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…

JAVA:代理模式(Proxy Pattern)的技术指南

1、简述 代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什…

3D Gaussian Splatting for Real-Time Radiance Field Rendering-简洁版

1. 研究背景与问题 传统的3D场景表示方法&#xff0c;如网格和点云&#xff0c;适合GPU加速的光栅化操作&#xff0c;但缺乏灵活性。而基于神经辐射场&#xff08;NeRF&#xff09;的表示方式&#xff0c;尽管质量高&#xff0c;但需要高成本的训练和渲染时间。此外&#xff0…

Unity性能优化---使用SpriteAtlas创建图集进行批次优化

在日常游戏开发中&#xff0c;UI是不可缺少的模块&#xff0c;而在UI中又使用着大量的图片&#xff0c;特别是2D游戏还有很多精灵图片存在&#xff0c;如果不加以处理&#xff0c;会导致很高的Batches&#xff0c;影响性能。 比如如下的例子&#xff1a; Batches是9&#xff0…

计算机网络知识点全梳理(三.TCP知识点总结)

目录 TCP基本概念 为什么需要TCP 什么是TCP 什么是TCP链接 如何唯一确定一个 TCP 连接 TCP三次握手 握手流程 为什么是三次握手&#xff0c;而不是两次、四次 为什么客户端和服务端的初始序列号 ISN 不同 既然 IP 层会分片&#xff0c;为什么 TCP 层还需要 MSS TCP四…

找出1000以内的所有回文数

找出1000以内的所有回文数 方法概述检查回文数的方法伪代码C代码实现代码解析运行结果在计算机科学中,回文数是一种具有对称性质的数,即从左向右读和从右向左读都是相同的。例如,121、1331、12321都是回文数。本文将利用数据结构、C语言和算法的知识来编写一个程序,找出100…

Go-FastDFS文件服务器一镜到底使用Docker安装

本文章介绍一镜到底安装go-fastdfs并配置数据文件到linux 由于国内镜像无法安装go-fastdfs&#xff1a;国内环境已经把docker官方的网站给封闭了 我们需要从国外的一台服务器&#xff0c;下载images镜像&#xff0c;然后进行转发加载到国内服务器 当然我也给你们准备了docke…

ArcGIS计算土地转移矩阵

在计算土地转移矩阵时&#xff0c;最常使用的方法就是在ArcGIS中将土地利用栅格数据转为矢量&#xff0c;然后采用叠加分析计算&#xff0c;但这种方法计算效率低。还有一种方法是采用ArcGIS中的栅格计算器&#xff0c;将一个年份的地类编号乘以个100或是1000再加上另一个年份的…

软路由系统 --- VMware安装与配置OpenWRT

目录: OpenWrt安装与配置 一、下载OpenWRT映像二、img转换vmdk格式三、创建虚拟机&#xff08;OpenWRT&#xff09;四、启动系统&#xff08;OpenWRT&#xff09;五、配置网络信息&#xff08;LAN、WAN&#xff09;六、登录OpenWRT后台管理界面 一、下载OpenWRT映像 OpenWrt映…

利用notepad++删除特定关键字所在的行

1、按组合键Ctrl H&#xff0c;查找模式选择 ‘正则表达式’&#xff0c;不选 ‘.匹配新行’ 2、查找目标输入 &#xff1a; ^.*关键字.*\r\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为&#xff1a;&#xff08;空&#xff09; 配置界面参考下图&#xff1a; ​​…

Moretl开箱即用日志采集

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

Java中的全局异常捕获与处理

引言 Java编程中&#xff0c;异常情况是不可避免的&#xff0c;优秀的异常处理机制是保证程序稳定性和可靠性的重要因素&#xff0c;当程序出现异常的时候&#xff0c;如果没有进行适当的处理&#xff0c;可能导致程序崩溃&#xff0c;丢失数据等严重问题。全局异常捕获与处理可…

基于Spring Boot的小区车辆管理系统

一、系统背景与目的 随着城市化进程的加快&#xff0c;小区内的车辆数量急剧增加&#xff0c;车辆管理问题日益凸显。传统的车辆管理方式存在效率低、易出错、信息不透明等问题。为了解决这些问题&#xff0c;基于Spring Boot的小区车辆管理系统应运而生。该系统旨在通过信息化…

Mapbox-GL 的源码解读的一般步骤

Mapbox-GL 是一个非常优秀的二三维地理引擎&#xff0c;随着智能驾驶时代的到来&#xff0c;应用也会越来越广泛&#xff0c;关于mapbox-gl和其他地理引擎的详细对比&#xff08;比如CesiumJS&#xff09;&#xff0c;后续有时间会加更。地理首先理解 Mapbox-GL 的源码是一项复…

【计算机网络课程设计】校园网规划与设计

摘要 在科学技术飞速发展的时代&#xff0c;网络互联技术显示出了它蓬勃发展的生命力&#xff0c;它逐渐进入了人们的家居生活&#xff0c;使得当今社会的智能化和网络化越来越来明显。由于Internet的信息和服务内容不断的扩大&#xff0c;使得用户对网络的需求急剧增加。家庭…

单元测试-Unittest框架实践

文章目录 1.Unittest简介1.1 自动化测试用例编写步骤1.2 相关概念1.3 用例编写规则1.4 断言方法 2.示例2.1 业务代码2.2 编写测试用例2.3 生成报告2.3.1 方法12.3.2 方法2 1.Unittest简介 Unittest是Python自带的单元测试框架&#xff0c;适用于&#xff1a;单元测试、Web自动…

【数字化】华为数字化转型架构蓝图

导读&#xff1a;华为的数字化转型规划团队在2016年年底基于对愿景的系统诠释&#xff0c;整合出了数字化转型架构蓝图。该蓝图共分为5层&#xff0c;旨在通过数字化转型实现客户交互方式的转变、作战方式的转变、公司各平台业务能力的数字化、服务化以及运营模式的转变。 目录…

【射频仿真技巧学习笔记】Cadence修改图表背景、曲线颜色

很多初始设置的Cadence仿真出来的曲线是长下面这样的&#xff0c;背景是黑色&#xff0c;而且曲线是Dot点状fine细线&#xff0c;这样查看图像会很不方便 如果一条一条去改曲线的性质会很不方便&#xff0c; 这里我介绍一种方法&#xff0c;只需要输入几行代码就可以自动更改所…

数据结构-排序(来自于王道)

排序的基本概念 插入排序 在这个算法中&#xff0c;除了输入的数组本身&#xff0c;没有使用额外的数据结构来存储数据&#xff0c;所有的操作都是在原数组上进行的。因此&#xff0c;无论输入数组的大小 n 是多少&#xff0c;算法执行过程中所占用的额外空间是固定的&#xff…

zlmediakit搭建直播推流服务

参考连接 夏楚/ZLMediaKit gitee仓库&#xff08;基于C开发的高性能流媒体服务器&#xff09; ZLMediaKit 文档&#xff08;官方文档&#xff09; zlm wiki 维基 ZLMediaKit配置文件详解 ZLMediaKit播放url规则 resultful api web hook EasyPlayer.js 播放器 aizuda/z…