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=1138 zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181139 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.mzph.cn/news/798105.shtml

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

相关文章

泛型(java学习)

目录 1.泛型介绍: 2.泛型的好处: 3.泛型的语法 4.泛型的细节 5.自定义泛型 6.自定义泛型接口 8.泛型的继承和通配符 1.泛型介绍: 1)泛型又称参数化类型,解决数据类型的安全性问题。 2)在类声明或实例…

[尚硅谷 flink] 基于时间的合流——双流联结(Join)

文章目录 8.1 窗口联结(Window Join)8.2 **间隔联结(Interval Join)** 8.1 窗口联结(Window Join) Flink为基于一段时间的双流合并专门提供了一个窗口联结算子,可以定义时间窗口,并…

实现通讯录(顺序表版本)

一、功能要求 (1)⾄少能够存储100个⼈的通讯信息 (2)能够保存⽤⼾信息:名字、性别、年龄、电话、地址等 (3)增加联系⼈信息 (4)删除指定联系⼈ (5&#…

X年后,ChatGPT会替代底层程序员吗?

能不能替代,真的很难说,因为机器换掉人,这其实是一个伦理问题。 其实说白了,任何行业在未来都会被AI或多或少的冲击到,因为ChatGPT做为一个可以持续提升智能的AI,在某些方面的智能程度超过人类并不是什么难…

数据结构-基本概念

1.什么是数据结构? 数据 数据,是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 结构 (1)线性结构(比如图书目录文件,一对一的关系&#x…

Unity Meta Quest MR 开发(五):空间锚点

文章目录 📕教程说明 此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 开发者社区,博主目前在内担任 XR 开发的讲师。该社区提供专人答疑、完整进阶教程、从零到一项目孵化保姆服务&…

文件及相关文件函数的使用

目录 前言 文件的概述 文件类型 如何用C语言来操作文件呢? 文件缓冲区 文件的打开与关闭 文件的打开——fopen()函数 文件的关闭——fclose()函数 文件结束检测——feof()函数 文件的顺序读写 文件字符输出函…

kubernetes集群添加到jumpserver堡垒机里管理

第一步、在kubernetes集群中获取一个永久的token。 jumpserver堡垒机用api的来管理kubernetes,所以需要kubernetes的token,这个token还需要是一个永久的token,版本变更:Kubernetes 1.24基于安全方面的考虑(特性门控Le…

JVM字节码与类的加载——class文件结构

文章目录 1、概述1.1、class文件的跨平台性1.2、编译器分类1.3、透过字节码指令看代码细节 2、虚拟机的基石:class文件2.1、字节码指令2.2、解读字节码方式 3、class文件结构3.1、魔数:class文件的标识3.2、class文件版本号3.3、常量池:存放所…

在 K8s 上跑腾讯云 Serverless 函数,打破传统方式造就新变革

目录 目录 前言 Serverless 和 K8s 的优势 1、关于Serverless 函数的特点 2、K8s 的特点 腾讯云 Serverless 函数在 K8s 上的应用对企业服务的影响 1、弹性扩展和高可用性 2、成本优化和资源利用 3、简化部署和管理 拓展:腾讯云云函数 SCF on K8s 番外篇…

HarmonyOS实战开发-如何实现蓝牙设备发现、配对、取消配对功能。

介绍 蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。本示例通过ohos.bluetooth 接口实现蓝牙设备发现、配对、取消配对功能。实现效果如下&#xff1a…

计算机网络 实验指导 实验9

实验9 三层交换机综合实验 1.实验拓扑图 名称相连的接口IP地址网关PC1F0/3172.1.1.2/28172.1.1.1/28PC2F0/4172.1.1.18/28172.1.1.17/28PC3F0/5172.1.1.34/28172.1.1.33/28PC4F0/3172.1.1.3/28172.1.1.1/28PC5F0/4172.1.1.19/28172.1.1.17/28PC6F0/5172.1.1.35/28172.1.1.33/2…

ROS 2边学边练(16)-- 自定义msg和srv文件

前言 在前面的文章我们在学习主题(topic)和服务(service)通信方法时,使用的一直是ROS 2提供好的消息结构文件(xxx.msg)和服务结构文件(xxx.srv),稀里糊涂的就…

编程新手必看,学习python中列表数据类型内容(9)

Python中的列表是一种可变的、有序的数据结构,它允许存储不同类型的数据项,并支持多种操作。具体如下: 创建列表:可以通过一对方括号[]来创建一个空列表,或者在方括号内放入初始元素来创建一个非空列表。例如&#xff…

链表实验.

#include<stdio.h> #include<stdlib.h>// 定义单链表节点结构体 struct Node {int data;struct Node* next; };struct Node* initList() {struct Node* list (struct Node*)malloc(sizeof(struct Node));list->data 0;list->next NULL;return list; }void…

特征提取算法

特征提取算法 0. 写在前边1. Harris算法1.1 写在前面1.2 Harris算法的本质1.3 Harris算法的简化 2. Harris3D2.1 Harris3D算法问题定义2.2 Harris3D with intensity2.3 Harris3D without intensity 3. ISS特征点的应用 0. 写在前边 本篇将介绍几种特征提取算法&#xff0c;特征…

笔记 | 软件工程:需求分析

1 需求分析 #需求分析 1.1 需求分析概述 初步软件需求存在的问题&#xff1a;不具体&#xff0c;不清晰&#xff0c;关系不明朗&#xff0c;存在潜在缺陷&#xff0c;没有区分不同软件需求&#xff08;有必要鉴别不同软件需求项的重要性差别&#xff0c;区分不同软件需求的开…

【C语言】——指针八:指针运算笔试题解析

【C语言】——指针八&#xff1a;指针运算笔试题解析 一、题一二、题二三、题三四、题四五、题五六、题六七、题七 一、题一 //程序输出结果是什么 int main() {int a[5] { 1,2,3,4,5 };int* ptr (int*)(&a 1);printf("%d, %d", *(a 1), *(ptr - 1));return…

揭开“栈和队列”的神秘面纱

前言 在线性表中不止有顺序表和链表&#xff0c;今天的主角就如标题所说--->认识栈和队列。把他们俩放一起总结是有原因的&#xff0c;还请看官听我娓娓道来~ 什么是栈&#xff1f; 栈&#xff08;stack&#xff09;是限定仅在表尾进行插入和删除操作的线性表 咱可以把栈理…

Pro版 v3.0首页DIY热区神器,让图片更全能!

Pro版v3.0新增了很多新功能&#xff0c;为了方便大家能快速了解使用&#xff0c;今天&#xff0c;我们就开始来逐步了解这些新功能。 在此次更新中&#xff0c;Pro版的首页DIY功能实现了全新重构升级&#xff0c;新增了DIY热区、视频、排行榜、积分商城、预售、签到组件&#…