centos7.2系统部署ZooKeeper集群和Kafka集群(集群应用系统商城前置环境)

本次实验将使用centos7.2系统部署部署ZooKeeper集群因为Kafka依赖于ZooKeeper,所以我们一并进行部署。

实验所示的资源软件已上传至百度网盘,需要自取。

链接:https://pan.baidu.com/s/1a-7_iAIX0DBAMkF9bhiTcA?pwd=2333 
提取码:2333 
复制这段内容后打开百度网盘手机App,操作更方便哦。

ip网段规划如下:

IP

主机名

节点

172.16.51.23

zookeeper1

集群节点

172.16.51.32

zookeeper2

集群节点

172.16.51.41

zookeeper3

集群节点

既然是集群自然有多台主机了,本次实验则使用3台主机。我们可以通过克隆的方式快速搭建它们。至于网卡模式不做要求,nat和主机都可以。仅取决与你是否想让它们能通外网。

首先打开我们已经安装好的centos7.2系统,我们先做克隆前的环境准备。先配置一下ip地址,本地镜像源和主机映射文件还要关闭防火墙。

然后关闭防火墙。

移走本地的网络源,通过ssh上传本地资源软件包然后做个本地源仓库挂载。默认都上传在root目录下。

编写一下主机映射文件。

[root@localhost ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.51.23 zookeeper1
172.16.51.32 zookeeper2
172.16.51.41 zookeeper3

安装一下java环境。可以用命令查看一下能不能找到java版本来验证java是否安装成功。不过一般yum命令安装完了都是成功的。。。。我都不会再去打这个命令。

[root@localhost ~]# yum install -y java java-devel
[root@localhost ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

ssh本地上传zookeeper软件包准备解压使用。

[root@localhost ~]# tar -zxvf zookeeper-3.4.14.tar.gz

进入zookeeper-3.4.14/conf目录下,修改zoo_sample.cfg文件为zoo.cfg,并编辑该文件到文件末尾添加3个服务节点参数即可。其他不用动一般都是默认的端口之类的都能对上运行。

[root@localhost ~]# cd zookeeper-3.4.14/conf/
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
[root@localhost conf]# vi zoo.cfg

接着在3台机器dataDir目录(此处为/tmp/zookeeper)下,分别创建一个myid文件,文件内容分别只有一行,其内容为1,2,3。即文件中只有一个数字,这个数字即为上面zoo.cfg配置文件中指定的值。ZooKeeper是根据该文件来决定ZooKeeper集群各个机器的身份分配。先在1节点这边创建一下,然后克隆完后记得修改2和3节点的myid。

接着我们关闭这个虚拟机保存一个快照开始克隆。

选择完整克隆,防止zookeeper1节点如果出问题崩了牵连到其他2个节点。

zookeeper3也以相同的方式克隆,最后如下图所示。

接下来不要乱,开启这些虚拟机修改它们对应的ip地址和主机名以及myid数字标识。

zookeeper2节点地址

zookeeper3节点地址

配置完后记得重启网络服务包括zookeeper1节点。

然后修改它们各自的主机名,即使这边已经根据主机映射文件智能更新获取到了主机名,我们也要手动修改一下保险一点。

[root@zookeeper1 ~]# hostnamectl set-hostname zookeeper1
[root@zookeeper1 ~]# bash
[root@zookeeper2 ~]# hostnamectl set-hostname zookeeper2
[root@zookeeper2 ~]# bash
[root@zookeeper3 ~]# hostnamectl set-hostname zookeeper3
[root@zookeeper3 ~]# bash

在2节点和3节点上修改一下myid。3节点自己改成3,这里不截图贴了。

最后在3个节点的zookeeper启动目录下启动服务。

[root@zookeeper3 ~]# cd zookeeper-3.4.14/bin/
[root@zookeeper3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower

如果出现一个服务查看状态时报错不用紧张,先把所有节点的服务都启动好,然后再回来查看就行了。

可以看到,3个节点,zookeeper2leader,其他的都是follower

到这里为止zookeeper集群配置完毕,接着我们直接开始配置Kafka集群。

当时做的时候忘记把Kafka服务包也提前上传了,所以这边就需要手动上传给这三台机子了。

也可以选择上传给其中一台然后使用scp命令拷贝给另外两台。

因为是上传到root目录下所以需要cd回到root目录下去解压。

三个节点都需要解压哦。

修改Kafka配置文件,因为3个节点有需要相同注释修改的部分,所以我们可以先修改好这部分然后scp传给另外两个节点进行覆盖。

在zookeeper1节点,进入kafka_2.11-1.1.1/config目录下,编辑server.properties文件。

在配置文件中找到以下两行并注释掉。

[root@zookeeper1 config]# scp server.properties root@172.16.51.32:/root/kafka_2.11-1.1.1/config/server.properties
The authenticity of host '172.16.51.32 (172.16.51.32)' can't be established.
ECDSA key fingerprint is a2:06:6f:65:a3:1f:9c:53:91:6d:0a:81:d0:6f:da:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.51.32' (ECDSA) to the list of known hosts.
root@172.16.51.32's password:
server.properties                                        100% 6854     6.7KB/s   00:00
[root@zookeeper1 config]# scp server.properties root@172.16.51.41:/root/kafka_2.11-1.1.1/config/server.properties
The authenticity of host '172.16.51.41 (172.16.51.41)' can't be established.
ECDSA key fingerprint is a2:06:6f:65:a3:1f:9c:53:91:6d:0a:81:d0:6f:da:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.51.41' (ECDSA) to the list of known hosts.
root@172.16.51.41's password:
server.properties                                        100% 6854     6.7KB/s   00:00
[root@zookeeper1 config]#

接着再逐个节点修改不一样的部分。

1节点:

直接在文件末尾添加条目。137这些是行数序号不要抄。

    137 broker.id=1
    138 zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
    139 listeners = PLAINTEXT://172.16.51.23:9092

2节点同理:

broker.id=2
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.32:9092

3节点:

[root@zookeeper3 ~]# vi kafka_2.11-1.1.1/config/server.properties
broker.id=3
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.41:9092

最后同样进入到启动目录启动服务。

1节点:

[root@zookeeper1 config]# cd
[root@zookeeper1 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper1 bin]# jps
10336 Kafka
2753 QuorumPeerMain
10405 Jps
[root@zookeeper1 bin]#

2:

[root@zookeeper2 ~]# cd
[root@zookeeper2 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper2 bin]#  jps
2708 Kafka
2327 QuorumPeerMain
2775 Jps
[root@zookeeper2 bin]#

3:

[root@zookeeper3 ~]# cd
[root@zookeeper3 ~]# cd kafka_2.11-1.1.1/bin/
[root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper3 bin]# jps
2327 QuorumPeerMain
2700 Kafka
2767 Jps
[root@zookeeper3 bin]#

接着我们测试一下服务。

在zookeeper1节点,进入kafka_2.11-1.1.1/bin目录下,创建topic命令

如果成功的话,会输出“Created topic "test".”。

[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 172.16.51.23:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
[root@zookeeper1 bin]#

查看topic,虽然topic是在172.16.51.23上创建的,但是在其他机器上也能看到。我们可以到2和3节点的启动目录中使用命令查看。

[root@zookeeper2 bin]#  ./kafka-topics.sh --list --zookeeper 172.16.51.32:2181
test
[root@zookeeper2 bin]#

[root@zookeeper3 bin]#  ./kafka-topics.sh --list --zookeeper 172.16.51.41:2181
test
[root@zookeeper3 bin]#

测试成功!

那么centos7.2系统部署ZooKeeper集群和Kafka集群(集群应用系统商城前置环境)全部完成!

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

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

相关文章

BLIP 算法阅读记录---一个许多多模态大语言模型的基本组件

论文地址:😈 一、环境配置以及数据集准备 数据集准备 官网提供了下载数据集json文件的接口。但是很可能打不开,因为其放在了谷歌云上 https://storage.googleapis.com/ 不过不要担心,网页打不开,咱们可以利用python去…

助力大健康产业发展,深兰科技AI数字伙伴“益小青”亮相世界健博会

4月7日至4月10日,以“健康共同体,科技创未来”为主题的2024年(第六届)世界大健康博览会在武汉隆重举行。大会吸引了千余家知名企业、单位参展,200余位大健康领域重要嘉宾参会。深兰科技携国内首款AI心理陪伴数字人——益小青在展会上公开亮相…

RSA公钥格式公钥结构解析

一次发现RSA der格式公钥2048位(256bytes)有的长度292有的长度294于是分析了下: [root8f64ba75cbd1 tmp]# ll anewpub.der 1_pub.der -rw------- 1 root root 294 Apr 8 02:48 1_pub.der -rw------- 1 root root 292 Apr 8 02:25 anewpub…

为什么网站速度很重要?

网站速度,也被称为页面加载速度或网站性能,是指用户访问网站时,从发出请求到浏览器完全加载并显示网页内容所需的时间。这个速度的快慢直接影响用户的体验和对网站的整体评价。 为什么网站速度很重要? 网站速度之所以非常重要&a…

数仓调优实战:GUC参数调优

1. 前言 适用版本:【8.1.1及以上】 GaussDB(DWS)性能调优系列专题文章,介绍了数据库性能调优的思路和总体策略。在系统级调优中数据库全局的GUC参数对整体性能的提升至关重要,而在语句级调优中GUC参数可以调整估算模型,选择查询…

移动医保支付

传统就医流程中,涉及“三长一短”的难题,因此根据国家政策及互联网的能力支持,用户在微信或者支付宝上激活医保电子凭证之后,无需在医院窗口排队,即可通过微信小程序或者公众号、支付宝小程序缴纳医保挂号或医保门诊费…

Java常用API_System——常用方法及代码演示

1.System.exit(int status) 方法的形参int status为状态码,如果是0,说明虚拟机正常停止,如果非0,说明虚拟机非正常停止。需要将程序结束时可以调用这个方法 代码演示: public class Test {public static void main(S…

如何远程监控员工的电脑

如何远程监控员工的电脑 为什么要对员工使用电脑的行为进行监控呢?对企业来说是有其必要性的。其必要性主要体现以下4个方面。 1.数据安全与知识产权保护 防止数据泄露:企业内部往往存储着大量的敏感信息,如客户数据、财务资料、商业秘密、…

使用Code开发Django_模版和CSS

转到定义 和 查看定义 在使用Django或任何其他库的过程中,我们可能需要检查这些库中的代码。VS Code提供了两个方便的命令,可以直接导航到任何代码中的类和其他对象的定义: 转到定义 在Python开发环境中,我们可以轻松地对函数、类…

【QT学习】Graphics View框架(高阶篇)- 使用Graphics View框架创建开机动画

【QT学习】Graphics View框架(高阶篇)- 使用Graphics View框架创建开机动画_qgraphicsview 一步-CSDN博客 前言 在上一篇《Graphics View框架(进阶篇)- 派生QGraphicsItem类创建自定义图元item》中,我们介绍了创建自定…

助力AIGC暴雨推出4卡液冷图站TR770

2022年,ChatGPT横空出世,正式拉开了生成式人工智能(AIGC)的序幕;2024年,Sora惊艳亮相,再度将AIGC技术推向高潮,引发了全球范围内的新一轮科技竞赛与创新热潮。从文字创作的灵感迸发&…

图像处理环境配置opencv-python

下载python,配置pip使用清华源下载镜像: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 切换到python目录下,右击cmd,执行pip升级指令: python -m pip install --upgrade pip 下载opencv&#x…

“鲜花换冥币,文明寄哀思“张家口慈善义工联合会清明节活动

又是一年春草绿,梨花风起正清明。扫墓祭祖、缅怀先人是清明节的重要民俗活动,为摒弃传统陋习,树文明祭祀新风,2024年4月4日,张家口慈善义工联合会携手市人民公墓西祥园组织志愿者们开展以“鲜花换冥币,文明…

windows下使用的的数字取证工作工具套装:forensictools

推荐一套windows下使用的的数字取证工作工具套装:forensictools 部分工具包括: ▫️exiftool,一个命令行应用程序和 Perl 库,用于读写元信息。 ▫️YARA,一款开源工具,用于对恶意软件样本进行识别和分类。…

开源区块链系统/技术 总结(欢迎补充,最新)

1. FISCO BCOS FISCO BCOS 2.0 技术文档 — FISCO BCOS 2.0 v2.9.0 文档https://fisco-bcos-documentation.readthedocs.io/ 2. ChainMaker(长安链) 文档导航 — chainmaker-docs v2.3.2 documentationhttps://docs.chainmaker.org.cn/v2.3.2/html/in…

移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解

Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则,队列里最下方的元素 Dijkstra 弹出: 代价最小的节点g(n) g(n) :表示的是从开始节点到当前n节点的代价累加 Dijkstra在扩展的时候&#x…

深度挖掘商品信息,jd.item_get API助您呈现商品全面规格参数

深度挖掘商品信息,特别是在电商平台上,对于商家、开发者和用户来说都至关重要。jd.item_get API作为京东开放平台提供的一个强大工具,能够帮助用户轻松获取商品的全面规格参数,进而为商品分析、推荐、比较等提供有力的数据支撑。 …

arm64 - 系统调用

起因 群里做网络的小伙伴问了一个问题,他在wifi驱动的某个函数里加了dump stack,然后插入驱动,发现调用栈是这样的,为什么呢? 代码追溯 insmod这个app,是在busybox中的,所以找到busybox的代…

大话设计模式——13.外观模式(Facade Pattern)

简介 又称门面模式,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 UML图 应用场景: 第三方SDK大多使用该模式,通过一个外观类,可对用户屏蔽…

蓝桥杯DFS-最大数字

解题思路 我们从最高位开始要利用自己的1号操作和2号操作保证当前这个数位的数一定要尽可能最大。 然后分别考虑两种操作,首先两种操作不可能混用,因为它们是抵消的效果,所以要么对这个数全使用1操作,要么2操作。假设某个数位的…