目录
一、环境准备
-
系统环境:Ubuntu 20.04 LTS(运行于Spark虚拟机)
-
用户权限:使用spark用户操作(需sudo权限)
-
软件版本:kafka_2.11-2.4.1
-
依赖组件:JDK 8+已安装
二、Kafka安装与配置
1. 解压安装包(选择自己的安装路径)
cd ~/Downloads
sudo tar -zxf kafka_2.11-2.4.1.tgz -C /usr/local/
2. 创建软链接
cd /usr/local
sudo ln -s kafka_2.11-2.4.1/ kafka
3. 权限设置
sudo chown spark:spark -R kafka_2.11-2.4.1/
三、服务启动验证
1. 启动Zookeeper
cd /usr/local/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties &
验证命令:
jps
# 预期输出包含:QuorumPeerMain
2. 启动Kafka服务
bin/kafka-server-start.sh config/server.properties &
双重验证:
jps
# 应同时出现:QuorumPeerMain 和 Kafka
四、主题管理实战
1. 创建测试主题
bin/kafka-topics.sh --create \
--zookeeper localhost:2181 \
--replication-factor 1 \
--partitions 1 \
--topic mytopic
2. 查看主题列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
# 预期输出:mytopic
五、生产消费全流程测试
1. 启动生产者
bin/kafka-console-producer.sh \
--broker-list localhost:9092 \
--topic mytopic
# 输入测试数据
>hello
>spark
>bye
2. 启动消费者(历史消息拉取)
bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic mytopic \
--from-beginning
# 预期接收顺序:
# hello
# spark
# bye
六、网络连通性测试(扩展)
# 终端1启动监听
nc -lk 9999
# 终端2建立连接
nc localhost 9999
七、常见问题排雷
Q1:服务启动失败
-
检查2181(Zookeeper)、9092(Kafka)端口占用
-
确认
config/server.properties
中的listeners=PLAINTEXT://:9092
Q2:主题创建超时
-
验证Zookeeper服务状态
-
检查防火墙设置
sudo ufw status
Q3:权限拒绝问题
# 递归修改目录权限
sudo chmod 755 -R /usr/local/kafka