基于zookeeper搭建kafka集群

1、什么是kafka

Kafka 是一款开源的分布式流处理平台,最初由 LinkedIn 开发,后由 Apache 基金会维护。它被设计用于高吞吐、可扩展的实时数据管道和流处理场景。Kafka 的核心功能包括发布和订阅消息流、持久化存储数据以及实时处理数据流。其架构基于生产者(Producer)、消费者(Consumer)、主题(Topic)和分区(Partition)等概念,支持水平扩展和高容错性。Kafka 广泛应用于日志收集、消息系统、实时分析和事件溯源等场景,是现代大数据生态系统中不可或缺的组件之一。

2、实验拓扑

在这里插入图片描述

3、搭建步骤

3.1、基础环境搭建

在所有节点上,通过命令“ apt install openjdk-17-jdk -y”安装jdk环境,并通过命令“java -version”验证是否安装成功
在这里插入图片描述
在这里插入图片描述

3.2、搭建zookeeper集群

(1)登录zookeeper官网,点击Download进入下载页,本实验我们下载3.8.4这一版本,下载链接可以根据自身实际的网络状况进行选择,下载完成后的tar.gz压缩包分发到所有节点的服务器上:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)在所有节点上通过命令“tar -xvzf apache-zookeeper-3.8.4-bin.tar.gz”解压刚刚下载好的tar.gz安装包,以debian1节点为例,如下:
在这里插入图片描述
(3)进入“apache-zookeeper-3.8.4-bin/conf”目录,将zoo_sample.cfg在当前目录下复制一份,并命名为“zoo.cfg”,此操作在每个服务器节点上都要进行,如下:
在这里插入图片描述
(4)在每个服务器节点的“apache-zookeeper-3.8.4-bin/conf”目录下,输入命令“vim zoo.cfg”打开zoo.cfg,修改此配置文件,所有节点服务器修改内容都相同,修改部分如下图所示:
在这里插入图片描述
(5)根据上一个步骤中,zoo.cfg配置文件的dataDir参数配置路径,在每台服务器上都创建相应的路径,以debian1节点为例如下图:
在这里插入图片描述
(6)在上一个步骤创建的zkData目录下,创建一个名为myid的文件,并写入相应的内容,其中debian1节点的内容为“1”,debian2节点的内容为“3”,debian3节点的内容为“2”,这些内容与zoo.cfg配置文件中的“server.1、server.2、server.3”号码对应(例如server.1=192.168.26.144:2888:3888的myid是1,server2是2,server3是3),如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(7)在每台服务器上通过命令执行相应的zookeeper启动命令,如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(8)在每台服务器节点上输入命令“/root/apache-zookeeper-3.8.4-bin/bin/zkServer.sh status”检查集群成员运行,通过状态可以看到,当前被选举为leader节点的是debian1(192.168.26.144)节点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,zookeeper集群部分搭建完成。

3.3、搭建kafka集群

(1)登录kafka官网,点击Download进入下载页,本实验我们下载3.9.0这一版本,下载链接可以根据自身实际的网络状况进行选择,下载完成后的tgz压缩包分发到所有节点的服务器上:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)在所有节点上通过命令“tar -xvzf kafka_2.12-3.9.0.tgz”解压刚刚下载好的tar.gz安装包,以debian1节点为例,如下:
在这里插入图片描述
(3)在所有节点上通过命令“vim /root/kafka_2.12-3.9.0/config/server.properties”修改kafka的server.properties配置文件,在配置文件中主要修改的是三个参数,分别为“broker.id”“listeners=PLAINTEXT”和“zookeeper.connect”,不同节点的配置参数有所差异,分别如下:
【debian1节点】
在这里插入图片描述
在这里插入图片描述
【debian2节点】
在这里插入图片描述
在这里插入图片描述
【debian3节点】
在这里插入图片描述
在这里插入图片描述
(4)在所有节点上输入命令“/root/kafka_2.12-3.9.0/bin/kafka-server-start.sh -daemon ../config/server.properties”,启动kafka,以debian1节点为例,其余节点均一致,如下:
在这里插入图片描述
(5)在任意节点输入命令“/root/kafka_2.12-3.9.0/bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.26.144:9092 | grep 192.168”,如果返回的结果包含了其他的成员节点,则表示kafka集群搭建成功,以debian1节点上为例,如下:
在这里插入图片描述
至此,kafka集群搭建完成。

4、验证

(1)在任意节点(如debian2节点),输入命令“/root/kafka_2.12-3.9.0/bin/kafka-topics.sh --create --bootstrap-server 192.168.26.151:9092 --replication-factor 1 --partitions 1 --topic test”创建一个名为“test”的topic(主题),如下:
在这里插入图片描述
(2)更换其他节点,输入命令“/root/kafka_2.12-3.9.0/bin/kafka-topics.sh --list --bootstrap-server 192.168.26.152:9092”查看刚刚创建的test主题,如果成功反馈,则表示kafka集群成功进行数据同步,集群搭建成功,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)在任意节点上(如debian2节点),输入命令“/root/kafka_2.12-3.9.0/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server 192.168.26.152:9092”进入生产者(Producer)的会话,然后输入任意内容,并敲回车键发送,如下:
在这里插入图片描述
(4)更换一个节点(如debian1节点),输入命令“/root/kafka_2.12-3.9.0/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server 192.168.26.144:9092”,进入消费者(Consumer)会话,如果能接收到生产者发送的关键词,则kafka集群功能测试通过,如下:
在这里插入图片描述
至此,kafka+zookeeper搭建和测试工作全部完成。

5、其他注意事项

Kafka和zookeeper都建议前往官网下载tar.gz和tgz压缩包进行部署搭建,不建议使用debian软件仓库中的安装包,在搭建过程中我们发现,debian系统的软件仓库有zookeeper可供安装,然而使用软件仓库中的zookeeper版本可能会因为slf4j和log4j版本不兼容导致单机或者集群部署后无法正常启动且报错,因此为提高部署成功率,减少不必要的排错工作,建议使用官网上的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值