温馨提示×

ubuntu kafka配置如何扩容节点

小樊
41
2026-09-14 17:24:39
栏目: 智能运维

在 Ubuntu 上对 Kafka 集群进行节点扩容,通常指 增加 Broker 节点。下面按实操步骤说明,假设你已有 Kafka 集群(如 3 个节点),现在新增 1~N 个节点。


一、前置条件

  • 已有 Kafka 集群(ZooKeeper 或 KRaft 模式)
  • 新节点已安装 Ubuntu
  • 新节点与现有节点 网络互通
  • 使用相同 Kafka 版本(强烈建议)

二、安装 Kafka(新节点)

1. 安装 JDK

sudo apt update
sudo apt install openjdk-11-jdk -y

2. 下载 Kafka

wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
sudo mv kafka_2.13-3.6.1 /opt/kafka

三、配置新 Broker

1. 修改 server.properties

cd /opt/kafka/config
vim server.properties

关键配置(重点)

# 每个 broker 必须唯一
broker.id=4

# 监听地址
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://新节点IP:9092

# ZooKeeper 模式
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

# 或 KRaft 模式
# process.roles=broker
# controller.quorum.voters=...
# listeners=PLAINTEXT://0.0.0.0:9092
# advertised.listeners=PLAINTEXT://新节点IP:9092

log.dirs=/data/kafka-logs
num.partition=1
default.replication.factor=3

⚠️ 注意:

  • broker.id 不能和现有节点冲突
  • advertised.listeners 必须是 其他节点能访问的 IP

四、启动新节点

/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

查看日志:

tail -f /opt/kafka/logs/server.log

确认已加入集群:

bin/kafka-broker-api-versions.sh --bootstrap-server 新节点IP:9092

五、分区再均衡(重要)

新节点加入后,不会自动迁移数据,需要手动操作。

方式一:使用 kafka-reassign-partitions(推荐)

1. 生成迁移计划

bin/kafka-reassign-partitions.sh \
--bootstrap-server 任意节点:9092 \
--topics-to-move-json-file topics.json \
--broker-list "1,2,3,4" \
--generate

topics.json 示例:

{
  "topics": [
    {"topic": "test-topic"}
  ],
  "version": 1
}

2. 执行迁移

bin/kafka-reassign-partitions.sh \
--bootstrap-server 任意节点:9092 \
--reassignment-json-file reassignment.json \
--execute

3. 查看进度

bin/kafka-reassign-partitions.sh \
--bootstrap-server 任意节点:9092 \
--reassignment-json-file reassignment.json \
--verify

方式二:自动均衡(Kafka 2.4+)

bin/kafka-balancer.sh --bootstrap-server 任意节点:9092

六、验证扩容结果

bin/kafka-topics.sh --bootstrap-server 任意节点:9092 --describe

确认:

  • 新 broker 出现在 ISR
  • 分区已分布到新节点

七、常见问题

1. 新节点没数据?

正常,必须执行 partition reassignment。

2. broker.id 冲突?

修改 server.properties 并重启。

3. 网络不通?

检查:

  • 防火墙
  • advertised.listeners
  • security group(云环境)

八、总结步骤

  1. 安装 Kafka
  2. 配置 server.properties
  3. 启动 Broker
  4. 执行分区再均衡
  5. 验证

如果你是 KRaft 模式 / Docker / 云服务器 / 单节点扩多节点,可以告诉我,我可以给你更针对性的配置示例。

0