【大数据工具】Zookeeper 分布式集群和伪分布式安装

news2024/10/5 16:24:27

Zookeeper 安装

zookeeper 安装包下载地址:https://archive.apache.org/dist/zookeeper/

1. 伪分布式部署

说明:伪分布即在一台服务器上通过不同端口模拟出分布式集群的效果,分布式一般 3 台起,一主两从。

说明:伪分布安装在了 Windows 开辟的虚拟机上,主机名为 bigdata

1. 将 zookeeper 安装包 zookeeper-3.4.10.tar.gz 导入 Linux

2. 解压并重命名

[root@bigdata ~]# cd /software/
[root@bigdata software]# tar -zxvf zookeeper-3.4.10.tar.gz -C .
[root@bigdata software]# mv zookeeper-3.4.10 zk

3. 配置环境变量

# /etc/profile
export ZOOKEEPER_HOME=/software/zk
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin

4. 备份及修改 zk 配置文件 zoo_sample.cfg.bak

[root@bigdata software]# cd zk/conf
[root@bigdata conf]# cp zoo_sample.cfg zoo1.cfg
[root@bigdata conf]# vi zoo1.cfg  # 修改该文件,注意一下两点即可,其他按默认即可
# 客户端端口,三个节点需要指定不同端口避免端口冲突
clientPort=2181
# 存放数据的目录,自定义,后边创建
dataDir=/software/zk/data/bigdata1
# 服务器列表及端口,三个节点需要指定不同的端口避免端口冲突
server.1=bigdata:2887:3887
server.2=bigdata:2888:3888
server.3=bigdata:2889:3889
  • 说明1:需要修改或添加的配置项
    • 修改 clientPortdataDir
    • 下边三行是需要添加的,指定各节点信息端口,格式为:
server.id=hostname:port1:port2
  • 说明2:参数解释

    • tickTime:zk 服务器和客户端会话心跳超时间间隔,单位为毫秒
    • initLimit:在 zk follower 和 leader 之间进行数据同步最大超时次数,比如 initLimit = 5 ,tickTime = 2000,则允许最大延迟则为 5 * 2000 = 10000 毫秒
    • syncLimit:在 follower 和 leader 之间数据同步和消息发送时,请求和应答不能超过多少个 tickTIme
    • dataDir:zk 内部存储数据的磁盘位置,默认情况下 zk 的日志文件也保存在这个目录中。zk 运行期间会将数据存储在内存,保证访问速度
    • server.x:zk 的服务器列表,格式如下:server.x = hostname:port1:port2 ,x 为从 1 -N 的数字,说明该节点 zk 集群中的编号,该编号在 myid 中配置,hostname 为当前服务器主机名或 IP,port1 为 follower 和 leader 之间通讯端口,port2 为 leader 失效后选举端口
    • myid:在各自的 dataDir 目录中,内容就是当前服务器的编号

zoo1.cfg 配置完后为其他两个节点复制两份,并修改 clientPort 和 dataDir:

[root@bigdata conf]# cp zoo1.cfg zoo2.cfg
[root@bigdata conf]# cp zoo1.cfg zoo3.cfg
[root@bigdata conf]# vi zoo2.cfg
clientPort=2182
dataDir=/software/zk/data/bigdata2
[root@bigdata conf]# vi zoo3.cfg
clientPort=2183
dataDir=/software/zk/data/bigdata3

5. 创建节点数据存放目录及 myid

  • 根据 zoox.cfg 中 dataDir 创建目录
[root@bigdata conf]# mkdir /software/zk/data
[root@bigdata conf]# cd /software/zk/data
[root@bigdata data]# mkdir bigdata1 bigdata2 bigdata3
[root@bigdata data]# vi bigdata1/myid
1
[root@bigdata data]# vi bigdata2/myid
2
[root@bigdata data]# vi bigdata3/myid
3

6. 启动 zk 并查看

  • 启动:
# 在 zk/bin 目录下
zkServer.sh start zoo1.cfg
zkServer.sh start zoo2.cfg
zkServer.sh start zoo3.cfg
  • 查看进程:
[root@bigdata zk]# jps
2320 Jps
2050 QuorumPeerMain
2008 QuorumPeerMain
1980 QuorumPeerMain
  • 查看节点状态:一个 leader,两个 follower
[root@bigdata zk]# bin/zkServer.sh status zoo1.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo1.cfg
Mode: follower
[root@bigdata zk]# bin/zkServer.sh status zoo2.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo2.cfg
Mode: leader
[root@bigdata zk]# bin/zkServer.sh status zoo3.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo3.cfg
Mode: follower
  • 根据 zk 选举机制,一共 3 台,当第二台启动后就会根据 serverid 选举出 myid 大的作为 leader,myid 小的和第三台作为 follower

图示:

2. 分布式集群安装

1. 上传解压名命名

# 将zookeeper解压后文件夹重命名为zk
mv zookeeper-3.4.10.tar.gz /software
tar -zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zk

2. 配置环境变量

export ZOOKEEPER_HOME=/software/zk
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
# 配置完source一下,使其生效:
source /etc/profile

3. 修改配置文件

cd /software/zk/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 在 /software/zk/ 下创建zk的数据存放目录data,并配置到此
dataDir=/software/zk/data
# 在最后添加上以下内容,其中2888是通讯端口,3888是选举端口
server.0=hadoop0:2888:3888
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888

4. 配置 myid

mkdir /software/zk/data
cd /software/zk/data
vi myid
# 把 0 写到该文件的最上边,Hadoop1的就写1,Hadoop2的就写2

5. 复制到其他节点上

  • 若 zk 在之前就安装好了,只需修改配置文件和创建 ZooKeeper 的数据存放目录

6. 环境变量的赋值

  • 按 serverID 命名须知,修改 /etc/myid 里的数值(myid 就是 serverID,0~255)

7. 关闭防火墙和 selinux

# 查看防火墙状态
systemctl status firewalld.service
# 停止防火墙命令
systemctl stop firewalld
# 开机禁止启动命令
systemctl disable firewalld

# 查看selinux状态,非 disabled 则需要禁用
sestatus
# 修改selinux配置文件
vi /etc/selinux/config
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 然后重启机器
reboot

8. 启动测试

  • 分别在三台机器下启动
cd /software/zk/bin  # 配置了zk的环境变量可以不切到该目录,在任意目录执行start都可以
zkServer.sh start
# 查看服务器的各个角色:
zkServer.sh status
有Follower、Leader等等

说明:

  • leader 不一定是在第一个节点上面,是由 Zookeeper 内部的选举机制产生的
  • QuorumPeerMain 进程是 ZooKeeper 的进程名字

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

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

相关文章

华为OD机试真题 Java 实现【斗地主之顺子】【2023 B卷 100分】,附详细解题思路

一、题目描述 在斗地主扑克牌游戏中,扑克牌由小到大的顺序为: 3.4.5.6.7.8.9.10.J.Q.K A.2,玩家可以出的扑克牌阵型有: 单张、对子、顺子、飞机、炸弹等。 其中顺子的出牌规则为: 由至少 5 张由小到大连续递增的扑克牌组成,且不能包含 2。 …

RK1126 NPU yolov5 6.2

基于 rk npu , 实现 yolov5 6.2 模型推理 实现过程 ⚡️​ 编译 opencv 需根据自己路径修改. cmake -D CMAKE_BUILD_TYPERELEASE \-D CMAKE_C_COMPILER./gcc-arm-8.3-2019.02-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc \-D CMAKE_CXX_COMPILER./gc…

VMware虚拟机Ubuntu磁盘空间扩充详细教程

文章目录 一、写在前面二、具体步骤三、最后总结 一、写在前面 最近在做Linux内核相关实验的时候,发现有时候我们编译出来的内核太大,如果VMware虚拟机空间分配不足会导致编译Linux内核失败,经过摸索,发现可以扩充Ubuntu的磁盘空间…

【Rust日报】2023-06-05 Effective Rust: 35种提升 Rust 代码的方法

Effective Rust: 35种提升Rust代码的方法 这是一本关于 Rust 的最佳实践指南的电子书,其中包含了很多 Rust 编程的技巧和建议。 这篇指南分为多个章节,涵盖了 Rust 编程的各个方面, 他分别从 类型, 概念, 依赖, 工具 等几大类上阐述了 35 种提高 Rust 代…

记录--你真的能区分JavaScript的各种导入导出方式吗?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 🛰🛰 我们在无论是在查阅别人的代码,还是在实际项目开发的过程中,肯定都会使用导入导出的功能,有时候我们会搞混这几种方式到底有什么区…

有哪些比较好的游戏图标推荐

游戏图标设计在游戏UI中占有非常重要的地位。例如,当我们看到一个游戏的启动图标时,很容易区分它是哪个游戏。设计游戏图标不仅是一个图形,也是一个标志。 本文将通过各种游戏图标设计素材分享游戏图标的类别和设计游戏图标的思考。 1. 游戏…

基于SSM+JSP的大学生校园兼职系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

wsl连接usb设备,以及挂载u盘

目录 wsl连接usb设备 安装usbinpd-win 配置 在kali中做写的配置 在wsl中的配置 在kali中查看附加结果 报错 挂载u盘,查看u盘的内容 wsl连接usb设备 安装usbinpd-win winget install --interactive --exact dorssel.usbipd-win 配置 在kali中做写的配置 s…

Java 21 将不再有public static void main !

之前的Java是这样: Java 21会是这样: 看到这个消息,我最大的感受是: 卧槽,怎么就Java 21了?!我还在用Java 8 呢! 实际上,从Java 8 到Java 21,中间也就是Java…

“Pull”和“Push”支付的区别

下图展示了“Pull”和“Push”支付的工作原理。 当我们在商家处刷信用卡/借记卡时,这是一种“Pull”支付,资金从持卡人的账户发送到商家。商家从持卡人的账户中取款,而持卡人批准交易。 通过Visa Direct或Mastercard Send,推送支付…

WebRTC实战 | 视频云

前言 WebRTC是当前实时通信领域的重要技术之一,具有广泛的应用前景。可以实现音频、视频和数据的实时传输。支持点对点通信、多方会议、屏幕共享等多种应用场景,同时具有高质量、低延迟、强安全性等特点,是开发实时通信应用的理想选择。可以应…

从“嘿,Siri”到元宇宙,苹果还有多远距离要走?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在当前的科技浪潮中,元宇宙的概念凭借其无限的想象力和可能性,像一颗耀眼的新星吸引着世界的目光。巨大的发展潜力,吸引着一波又一波的企业,前赴后继地向元宇宙发起冲锋。 在这…

27.打包项目

目录 1 打包成dist 2 flask配合dist 3 以文件形式打开 1 打包成dist 项目路径下输入 npm run build 在项目路径下会出现一个dist 打包后直接双击打开index.html是没有用的 因为你双击打开是file协议,你需要一个http协议 2 flask配合dist 我们可以搞一个fla…

「企业信息架构」EA874:信息架构治理概述

信息治理是一个程序,它实现决策权和支持机制,以确保整个企业信息的准确性、完整性、一致性、可访问性和安全性。为了维持信息治理,需要在业务(而不是IT)中确定和建立几个角色。这三个角色可能单独存在,也可…

分布式光伏消纳的微电网群共享储能配置策略研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【AUTOSAR】Bootloader说明(四)---- 升级主函数

刷新主函数uds_refresh_main() 当执行完初始化后,DSP进入刷新主函数。 主函数是一个无穷循环函数,完成诊断消息的接收、处理,诊断状态的刷新等。 函数原型 void bblk_normal_isr(void) 函数作用 完成看门狗服务,清楚定时器中…

如何在ImageSpan上面绘制文本?

简介:TextOnImageSpan 前阵子碰到一个需求:在文本中内嵌图标,并在图标上面绘制特定文本。很自然就会想到用SpannableString去实现,但经过一系列的研究捣鼓,发现根本就没有能在图标上绘制文本的span类,于是乎…

单马达可换档六足机器人前进功能的实现

1. 运动功能说明 本文示例将实现R046样机单马达可换档六足机器人前进的功能。 2. 结构说明 本样机只有一个圆周舵机,却可以通过换挡机构实现前进和转向两种行走姿态。 样机由一个圆周舵机带动一个等速齿轮组(下图所示两枚蓝色齿轮)&#xff0…

C#,码海拾贝(26)——求解“一般带状线性方程组”之C#源代码

在大型稀疏方程组中,最常见的是带状方程组,其系数矩阵是带状矩阵,非零元素仅集中在对角线附近的带状区域内。 特别的,当上下带宽相等时我们A称方程组为等带宽方程组。总带宽为3的等带宽方程组我们又叫三对角方程组。 using Syste…

如何在 Elasticsearch 论坛/社群上提出高质量的技术问题?

在网络的海洋中寻求帮助,有时可能会让你感到茫然。你可能已经准备好详细描述你的问题,但如果你不知道如何有效地提问,你可能会发现自己在等待回答时感到挫败。 这篇文章的目标是为你提供一些提示,让你更快地获取你在论坛上的技术问…