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

Kafka KStream application - temp file cleanup

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

这些会自行清理吗?还是我需要注意这些?要设置一些参数来剔除它们?

关于这些 local/temp 文件:其中一些文件是应用程序状态,这些文件应该占 space 消耗的大部分。您的应用程序可能是 "piling up" 许多 GB 的文件,这仅仅是因为您的应用程序实际上管理着很多状态。如果删除这些文件,可以通过从 Kafka 重播状态的更改日志来(自动)重建这些文件,但这可能需要一些时间。

Will these get cleaned up on their own or is this something I need to keep an eye on? Some param to be set to cull them?

一些清理工作已经完成,但正如我在上面所写的那样,很可能文件消耗 space 是有原因的。也许您可以分享应用程序处理拓扑的片段以及有关应用程序处理的数据的一些信息,这可能有助于了解所消耗的 space 是否正确或是否可能存在问题。

清理:最新版本的 Kafka (0.10.0.1) 现在附带 Kafka Streams 的应用程序重置工具以及一些有助于 cleaning/resetting 的附带 API 方法,请参阅 Data Reprocessing with Kafka Streams: Resetting a Streams Application.也就是说,我不确定您是否打算清理文件,因为您已经停止了应用程序并想要删除所有本地数据,或者因为您想在应用程序仍然 "garbage collection" 时执行一些操作 运行。如果是关于后者 (GC),那么一般来说没有必要——文件在那里是有充分理由的,而且很可能只是重新创建。