【发布时间】:2023-03-30 17:09:01
【问题描述】:
我有一个最近崩溃的 1 节点 kafka。我能够从 /tmp/kafka-logs/mytopic-0/ 抢救 .log 和 .index 文件,并且我已将这些文件移动到不同的服务器并在其上安装了 kafka。
有没有办法让新的 kafka 服务器为这些 .log 文件中包含的数据提供服务?
更新:
我可能没有以正确的方式做到这一点,但这是我已经厌倦的:
- 在新的 kafka 服务器上创建了一个名为 recovermytopic 的主题 停止卡夫卡
- 将所有 .log 文件移至
/tmp/kafka-logs/recovermytopic-0 - 重启卡夫卡
-
似乎对于每个 .log 文件,kafka 生成了一个 .index 文件,看起来很有希望,但在创建索引文件后,我看到了以下消息:
WARN Partition [recovermytopic,0] on broker 0: No checkpointed highwatermark is found for partition [recovermytopic,0] (kafka.cluster.Partition) INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions [recovermytopic,0] (kafka.server.ReplicaFetcherManager)
当我尝试使用 kafka-console-consumer 检查主题时,kafka 服务器说:
INFO Closing socket connection to /127.0.0.1. (kafka.network.Processor)
没有消息被消费..
【问题讨论】:
-
重新排队是什么意思?
-
@nautilus 让新的 kafka 实例提供日志文件中的消息。改写问题,谢谢!
-
尝试创建一个具有相同名称和相同分区数的主题。可以使用 OffsetResetStrategy.EARLIEST 重置从头开始消费信息的消费者
-
@nautilus 谢谢,刚刚试过,在消费者方面,我收到了这个错误:
Failed to find leader for Set([mytopic,0]) -
创建消费者时会发生这种情况?你用的是什么版本? broker和zookeeper已经正确启动了吗?
标签: apache-kafka