2

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

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

4

1 回答 1

3

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

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

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

清理:最新版本的 Kafka (0.10.0.1) 现在附带用于 Kafka Streams 的应用程序重置工具以及一些有助于清理/重置的随附 API 方法,请参阅使用 Kafka Streams 进行数据重新处理:重置 Streams 应用程序。也就是说,我不确定您是否打算清理文件,因为您已停止应用程序并想要摆脱所有本地数据,或者因为您想在应用程序仍在运行时进行一些“垃圾收集”。如果是关于后者(GC),那么一般来说没有必要——文件在那里是有充分理由的,而且很可能只是被重新创建。

于 2016-09-02T07:21:16.203 回答