问题很简单。如果删除Kafka日志目录中的Kafka快照文件,将会发生什么。 Kafka可以开始吗?它会不得不缓慢地重建某些东西吗?
奖金问题,快照文件到底包含什么?
我的集群已关闭了几天,这是由于所有代理同时停机以及由此导致的代理损坏所致。现在,当它启动时,它会沉默几个小时(在日志文件中没有新消息)。通过检查JVM,我发现所有(非常有限的)cpu使用都花费在loadproducersfromlog函数/方法中。通过阅读以上注释,建议这是尝试从快照恢复生产者状态的尝试。我不在乎这个。我只想让经纪人回来,所以我在考虑是否可以删除快照以重新启动Kafka。
答案 0 :(得分:2)
如果删除了快照文件,则在启动方法log.loadSegmentFiles()期间,即使存在日志和索引文件,也必须读取分区中的所有消息以重新创建快照。这将增加加载分区的时间。
有关快照文件的内容,请参考ProducerStateManager中的writeSnapshot()。 https://github.com/apache/kafka/blob/980b725bb09ee42469534bf50d01118ce650880a/core/src/main/scala/kafka/log/ProducerStateManager.scala
答案 1 :(得分:1)
参数---title-----genre---production---year---quarter
animation1 genre production 2018 4
animation2 genre production 2018 3
animation3 genre production 2018 2
animation4 genre production 2018 1
定义主题(即数据)的存储位置(log.dirs属性的补充)。
快照基本上可以在某个时间点为您提供数据副本。
在像您这样的情况下,您不必等待响应,而是可以:
更改log.dirs路径,重新启动一切,然后查看其进展;
备份快照,将其保存在其他位置,从上一个快照中删除所有快照,然后查看其进展情况。
之后,您将能够启动Kafka。