温馨提示×

ubuntu kafka配置怎么迁移

小樊
37
2026-09-29 18:14:55
栏目: 智能运维

在 Ubuntu 上迁移 Kafka 配置,通常分为配置文件的迁移和数据(topic、消息)的迁移两部分。下面按常见场景给你一个清晰的操作指南。


一、Kafka 配置文件迁移

1. 找到原 Kafka 配置目录

通常位于:

/etc/kafka/
/opt/kafka/config/
/usr/local/kafka/config/

常见关键文件:

  • server.properties
  • producer.properties
  • consumer.properties
  • zookeeper.properties(如果用 ZK)

2. 备份原配置

tar czf kafka-config-backup.tar.gz /etc/kafka

或只复制:

cp -r /etc/kafka /backup/kafka-config

3. 在新 Ubuntu 上恢复

scp user@old-server:/backup/kafka-config-backup.tar.gz .
tar xzf kafka-config-backup.tar.gz -C /

⚠️ 注意修改以下参数(很重要):

broker.id=
listeners=
advertised.listeners=
log.dirs=
zookeeper.connect=

二、Kafka 数据迁移(Topic & 消息)

方案 1:直接拷贝数据目录(推荐,同版本 Kafka)

1. 停止 Kafka

systemctl stop kafka

2. 查看数据目录

log.dirs=/var/lib/kafka/logs

3. 拷贝数据

rsync -avz /var/lib/kafka/logs/ user@new-server:/var/lib/kafka/logs/

4. 权限修复

chown -R kafka:kafka /var/lib/kafka/logs

5. 启动 Kafka

systemctl start kafka

✅ 适合:

  • Kafka 版本一致
  • broker 数量不变

方案 2:使用 MirrorMaker(跨集群迁移)

适合:

  • 不同 Kafka 版本
  • 新旧集群同时存在
kafka-mirror-maker.sh \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist=".*"

方案 3:用 kafka-reassign-partitions(扩容/缩容)

kafka-reassign-partitions.sh \
--bootstrap-server new-broker:9092 \
--reassignment-json-file plan.json \
--execute

三、ZooKeeper 迁移(如适用)

scp -r /var/lib/zookeeper user@new-server:/var/lib/

修改:

zookeeper.connect=new-zk:2181

四、迁移后检查

kafka-topics.sh --bootstrap-server localhost:9092 --list
kafka-topics.sh --bootstrap-server localhost:9092 --describe

五、常见坑

❌ broker.id 冲突
❌ advertised.listeners 写错
❌ 文件权限不对(kafka 用户无法读写)
❌ 新旧 Kafka 大版本不兼容


如果你能告诉我:

  • Kafka 版本
  • 是否用 ZooKeeper
  • 是否换机器 / 换 IP
  • 是否保留消息

我可以给你更精确的迁移命令。

0 踩