本文档为伪分布式大数据环境(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服务:zkServer.sh start
- 启动Kafka服务:kafka-server-start.sh
预期结果: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
预期结果:所有服务均正常关闭,无报错提示。
