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版本不兼容导致单机或者集群部署后无法正常启动且报错,因此为提高部署成功率,减少不必要的排错工作,建议使用官网上的版本。

版权声明

   站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。

给TA打赏
共{{data.count}}人
人已打赏
大数据

git命令行操作(git命令提交代码的正确步骤)

2025-3-4 15:17:16

大数据

本地部署大语言模型 电脑配置(本地部署大语言模型有哪些)

2025-3-4 15:17:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索