kafka在ubuntu上的配置步骤
导读:在 Ubuntu 上配置 Apache Kafka 的完整步骤 一 环境准备 安装 Java(推荐 OpenJDK 11): 执行:sudo apt update && sudo apt install openjdk-...
在 Ubuntu 上配置 Apache Kafka 的完整步骤
一 环境准备
- 安装 Java(推荐 OpenJDK 11):
- 执行:
sudo apt update & & sudo apt install openjdk-11-jdk -y - 验证:
java -version
- 执行:
- 创建专用用户(可选,提升安全性):
- 执行:
sudo useradd -m -s /bin/bash kafka & & sudo passwd kafka - 如需提权:
sudo usermod -aG sudo kafka(完成后可按需移除 sudo 权限并锁定密码)
- 执行:
二 安装与目录规划
- 下载并解压 Kafka(示例为 3.9.1,可替换为最新稳定版):
- 执行:
wget https://downloads.apache.org/kafka/3.9.1/kafka_2.13-3.9.1.tgz - 解压:
tar -xzf kafka_2.13-3.9.1.tgz - 移动:
sudo mv kafka_2.13-3.9.1 /usr/local/kafka
- 执行:
- 环境变量(可选,便于全局使用命令):
- 执行:
echo 'export KAFKA_HOME=/usr/local/kafka' > > ~/.bashrc - 执行:
echo 'export PATH=$PATH:$KAFKA_HOME/bin' > > ~/.bashrc - 生效:
source ~/.bashrc
- 执行:
- 目录建议:
- 数据存储:
/var/lib/kafka/data(对应 server.properties 的 log.dirs) - 日志目录:
/var/log/kafka(便于 logrotate 管理)
- 数据存储:
三 配置与启动
- 选择运行模式
- KRaft 模式(推荐,Kafka 3.x 内置,无需单独 ZooKeeper)
- ZooKeeper 模式(传统方式,依赖外部或自带 ZooKeeper)
- KRaft 模式(单机示例)
- 生成集群 ID:
/usr/local/kafka/bin/kafka-storage.sh random-uuid(保存输出的 cluster.id) - 格式化存储:
/usr/local/kafka/bin/kafka-storage.sh format -t < cluster.id> -c /usr/local/kafka/config/kraft/server.properties - 启动 Broker:
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/kraft/server.properties
- 生成集群 ID:
- ZooKeeper 模式(单机示例)
- 启动 ZooKeeper:
/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties - 启动 Kafka:
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
- 启动 ZooKeeper:
- 常用配置项(server.properties)
broker.id=0(单机固定为 0;集群需唯一)listeners=PLAINTEXT://0.0.0.0:9092advertised.listeners=PLAINTEXT://< 服务器公网或内网IP> :9092log.dirs=/var/lib/kafka/data- 如使用 ZooKeeper:
zookeeper.connect=localhost:2181
- 验证进程与端口
- 查看端口:
netstat -tulnp | grep 9092或ss -ltnp | grep 9092 - 查看日志:
tail -f /usr/local/kafka/logs/server.log
- 查看端口:
四 基本功能测试
- 创建 Topic(KRaft 推荐用 bootstrap-server;ZooKeeper 也可用 --zookeeper)
- 执行:
/usr/local/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
- 执行:
- 列出 Topic
- 执行:
/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
- 执行:
- 启动生产者
- 执行:
/usr/local/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
- 执行:
- 启动消费者
- 执行:
/usr/local/kafka/bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
- 执行:
- 观察消费者终端是否能实时收到生产者消息
五 常见问题与优化
- 无法远程连接
- 将
listeners设为PLAINTEXT://0.0.0.0:9092,advertised.listeners设为服务器的 实际 IP(不要用 127.0.0.1);同时检查云服务器安全组/防火墙放行 9092 端口。
- 将
- 启动报错 Java 未找到
- 确认已安装 JDK 且
java -version正常;必要时设置JAVA_HOME并加入 PATH。
- 确认已安装 JDK 且
- 清理与重建 KRaft 存储
- 停止 Broker,备份并清理
log.dirs目录,重新执行kafka-storage.sh format后再启动。
- 停止 Broker,备份并清理
- 资源与性能
- 堆内存:在启动前设置
export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"(按机器内存调整) - 关键参数:
num.partitions(分区数)、compression.type=snappy/lz4、log.retention.hours、num.io.threads等可按业务与硬件调优。
- 堆内存:在启动前设置
- 生产建议
- 使用 systemd 托管 Kafka/ZooKeeper 服务,配置日志轮转(logrotate),并分离数据与日志目录到独立磁盘。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: kafka在ubuntu上的配置步骤
本文地址: https://pptw.com/jishu/756192.html
