工具选择:
kafka-dump
工具导出全量数据(二进制格式):sudo apt-get install kafka-dump
kafka-dump --bootstrap-server localhost:9092 --output-dir /path/to/backup
tar
打包数据目录(需停止Kafka服务):sudo tar -czvf kafka_data_backup.tar.gz /var/lib/kafka/data
增量备份:
借助 MirrorMaker
工具同步数据到目标集群:
# 安装工具
sudo apt-get install confluent-kafka-backup
# 创建配置文件(/tmp/mirror-maker.properties)
cat > /tmp/mirror-maker.properties <<EOF
consumer.bootstrap.servers=localhost:9092
producer.bootstrap.servers=backup-host:9092
whitelist=test-topic # 指定备份主题
EOF
# 执行增量备份
kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config /tmp/mirror-maker.properties --producer.config /tmp/mirror-maker.properties
备份Kafka配置文件 /etc/kafka/server.properties
和ZooKeeper数据(若使用ZooKeeper):
sudo tar -czvf kafka_config_backup.tar.gz /etc/kafka
sudo tar -czvf zookeeper_data_backup.tar.gz /var/lib/zookeeper
数据恢复:
kafka-dump
备份,需将备份文件解压至数据目录并重启Kafka:tar -xzvf kafka_data_backup.tar.gz -C /var/lib/kafka/data
sudo systemctl restart kafka
tar
备份,直接复制文件到数据目录后重启。配置恢复:
恢复配置文件并重启Kafka:
cp kafka_config_backup.tar.gz /etc/kafka/
sudo systemctl restart kafka
使用 MirrorMaker
从备份集群同步增量数据到目标集群,步骤与增量备份类似,需指定源和目标地址。
kafka-topics.sh
检查备份的主题是否存在,或使用 kafka-console-consumer
验证数据完整性。参考来源: