【赫兹威客】伪分布式Kafka测试教程

本文档为伪分布式大数据环境(1台虚拟机:hadoop)中Kafka组件的功能测试教程,涵盖Kafka依赖服务启停、Topic创建、生产者与消费者通信等核心测试场景。严格遵循视频操作流程,详细说明每个步骤的操作要点、执行命令及预期结果,助力高效完成Kafka组件可用性及核心消息传递功能验证。

一、前期准备:环境基础信息

测试前需确认环境配置符合要求,避免因基础环境问题导致测试流程中断:

  • 虚拟机配置:1台虚拟机(命名为hadoop),已完成伪分布式部署
  • 系统账号:优先使用hertz账号(密码:hertz);特殊操作需使用root账号(密码:1)
  • 工具准备:Mobaxterm远程连接工具(已安装并可正常使用),需支持多窗口开启

二、Kafka测试详细步骤

步骤1:确认虚拟机启动状态

操作说明:启动虚拟机,等待系统加载完成,直至出现登录页面。

预期结果:虚拟机正常启动,显示系统登录界面,无启动报错。

步骤2:使用Mobaxterm连接虚拟机并开启两个窗口

操作说明:打开本地Mobaxterm工具,按照伪分布式部署教程中的详细步骤建立与虚拟机的远程连接,并额外开启一个连接窗口(用于分别运行Kafka生产者和消费者)。

核心操作要点:

  • 第一个窗口:新建远程连接,选择SSH连接方式,输入虚拟机IP地址,完成连接配置
  • 第二个窗口:在Mobaxterm中点击「Session」→「New session」,重复上述SSH连接配置,开启第二个连接窗口

预期结果:两个Mobaxterm窗口均连接成功,均进入等待登录状态。

步骤3:两个窗口分别输入账号密码完成登录

操作说明:在两个Mobaxterm连接窗口中,分别依次完成账号和密码输入。

具体操作(两个窗口操作一致):

  • 当终端显示账号输入提示时,输入:hertz
  • 回车后,终端显示密码输入提示,输入:hertz(密码输入时默认不显示明文)
  • 再次回车确认

预期结果:两个窗口均登录成功,终端界面均显示当前登录用户及主机信息(如[hertz@hadoop ~]$)。

步骤4:启动Kafka相关服务

操作说明:在任意一个登录成功的Mobaxterm窗口中,先启动ZooKeeper服务,再启动Kafka服务(Kafka依赖ZooKeeper,需保证ZooKeeper先启动完成)。

具体命令:

预期结果:ZooKeeper启动无报错;Kafka启动后终端持续输出运行日志,无报错退出情况。

步骤5:执行jps命令验证进程状态

操作说明:在另一个未启动服务的Mobaxterm窗口中,输入jps命令,查看当前运行的Java进程。

具体命令:jps

预期结果:终端输出进程列表,包含以下核心进程,说明相关服务启动正常:

  • QuorumPeerMain(ZooKeeper进程)
  • Kafka(Kafka进程)

步骤6:创建Kafka Topic

操作说明:在执行jps命令的Mobaxterm窗口中,执行Kafka Topic创建命令,创建名为test_kafka的Topic。

具体命令:kafka-topics.sh --bootstrap-server hadoop:9092 --create --topic test_kafka --partitions 1 --replication-factor 1

参数说明:

  • --bootstrap-server hadoop:9092:指定Kafka服务地址(虚拟机主机名:默认端口)
  • --create:创建Topic的指令
  • --topic test_kafka:指定Topic名称为test_kafka
  • --partitions 1:指定Topic的分区数为1(伪分布式环境适配)
  • --replication-factor 1:指定副本因子为1(伪分布式环境仅1个节点,副本数不能大于节点数)

预期结果:命令执行无报错,终端输出"Created topic test_kafka."提示,说明Topic创建成功。

步骤7:启动Kafka生产者

操作说明:在创建Topic的Mobaxterm窗口中,执行Kafka生产者启动命令,连接至test_kafka Topic。

具体命令:kafka-console-producer.sh --bootstrap-server hadoop:9092 --topic test_kafka

预期结果:命令执行无报错,终端进入生产者输入界面,显示"> "提示符,等待输入消息。

步骤8:启动Kafka消费者

操作说明:切换至另一个未启动生产者的Mobaxterm窗口(非启动Kafka服务的窗口),执行Kafka消费者启动命令,连接至test_kafka Topic并从开头消费消息。

具体命令:kafka-console-consumer.sh --bootstrap-server hadoop:9092 --topic test_kafka --from-beginning

参数说明:--from-beginning:表示从Topic的起始位置开始消费消息,确保能接收所有已发送的消息。

预期结果:命令执行无报错,终端进入消费者等待接收消息状态,无额外输出(等待生产者发送消息)。

步骤9:生产者发送消息并验证消费者接收

操作说明:回到生产者窗口,输入指定消息,观察消费者窗口是否能正常接收。

具体操作:

  • 在生产者窗口的"> "提示符后,输入:1,回车发送
  • 继续在"> "提示符后,输入:hello,回车发送

预期结果:

  • 生产者窗口输入消息后无报错,消息发送成功
  • 消费者窗口实时显示接收到的消息,依次显示"1"和"hello"

步骤10:关闭Kafka相关服务

操作说明:测试完成后,按顺序关闭Kafka生产者、消费者,再关闭Kafka服务和ZooKeeper服务。

具体操作:

  • 关闭生产者:在生产者窗口按「Ctrl+C」组合键,退出生产者进程
  • 关闭消费者:在消费者窗口按「Ctrl+C」组合键,退出消费者进程
  • 关闭Kafka服务:切换至启动Kafka服务的窗口,按「Ctrl+C」组合键停止Kafka服务;或在任意窗口执行命令:kafka-server-stop.sh
  • 关闭ZooKeeper服务:在任意窗口执行命令:zkServer.sh stop

预期结果:所有服务均正常关闭,无报错提示。

相关推荐
Leon-Ning Liu19 小时前
OGG同步Oracle到Kafka
数据库·oracle·kafka
Francek Chen19 小时前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
zzzzzwbetter20 小时前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式
杨航 AI20 小时前
Frank-Job +Dify 实现openclaw Cron 分布式任务调度的AI化思考
人工智能·分布式
guoguangwu20 小时前
kafka容器增加健康检查
分布式·kafka
Java爱好狂.20 小时前
2026如何备战互联网大厂Java面试?
java·分布式·高并发·java面试·后端开发·java架构师·互联网大厂
wanhengidc20 小时前
服务器对于企业的作用
大数据·运维·服务器·分布式
墨着染霜华21 小时前
Java实战:封装Redis非阻塞分布式锁,彻底解决表单重复提交主键冲突
java·redis·分布式
隔壁小邓1 天前
kafka怎么处理消息一致性
分布式·kafka
only-qi1 天前
主流分布式事务框架与方案:从 XA 到 Seata 四模式
分布式·seata·分布式事务·xa·tcc