【赫兹威客】伪分布式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

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

相关推荐
DemonAvenger1 天前
Kafka性能调优:从参数配置到硬件选择的全方位指南
性能优化·kafka·消息队列
初次攀爬者2 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
yumgpkpm3 天前
AI视频生成:Wan 2.2(阿里通义万相)在华为昇腾下的部署?
人工智能·hadoop·elasticsearch·zookeeper·flink·kafka·cloudera
予枫的编程笔记3 天前
【Kafka高级篇】避开Kafka原生重试坑,Java业务端自建DLQ体系,让消息不丢失、不积压
java·kafka·死信队列·消息中间件·消息重试·dlq·java业务开发
倚肆3 天前
在 Windows Docker 中安装 Kafka 并映射 Windows 端口
docker·kafka
断手当码农3 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
Sheffield3 天前
如果把ZooKeeper按字面意思比作动物园管理员……
elasticsearch·zookeeper·kafka
初次攀爬者3 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
雪碧聊技术3 天前
kafka的下载、安装、启动
kafka