Kafka KStream应用程序 - 临时文件清理

时间:2016-09-01 15:45:26

标签: java apache-kafka apache-kafka-streams

似乎我的基于 KStream 的应用程序堆积了许多gB文件(.sst,Log.old。< stamp>等)。

这些是否会自行清理或是否需要密切关注?有些param会被剔除吗?

1 个答案:

答案 0 :(得分:2)

关于这些本地/临时文件:其中一些文件是应用程序状态,这些文件占应占用的大部分空间。您的申请可能是"堆积"许多GB的文件只是因为你的应用程序实际上管理了很多状态。如果删除它们,可以通过从Kafka重播状态的更改日志来自动重建这些文件,但这可能需要一些时间。

  

这些是否会自行清理或是否需要密切关注?有些param会被剔除吗?

进行了一些清理工作,但正如我上面写的那样,很可能这些文件会占用这个空间。也许您可以共享应用程序处理拓扑的片段以及有关应用处理数据的一些信息,这可能有助于了解消耗的空间是否正确或是否存在问题。

清理:最新版本的Kafka(0.10.0.1)现在附带了Kafka Streams的应用程序重置工具以及一些有助于清理/重置的API方法,请参阅Data Reprocessing with Kafka Streams: Resetting a Streams Application。也就是说,我不确定你是否打算清理文件,因为你已经停止了应用程序并希望摆脱所有本地数据,或者因为你想做一些"垃圾收集"而应用程序仍在运行。如果它是关于后者(GC),那么通常没有必要 - 文件存在是有充分理由的,并且很可能只是重新创建。