Spark结构化流媒体v2.4.0-永久增长检查点目录:*。tmp.crc文件永远不会删除

时间:2019-02-19 13:24:25

标签: apache-spark

我运行Spark (2.4)的结构化流作业,该作业从Kafka topic读取,并使用带有水印的窗口将聚合的数据写回到不同的主题。在这种配置中,Spark需要检查点目录。问题是由于从未删除*.crc.tmp个文件,因此检查点目录的大小会永远增长。这些文件位于提交,偏移量和状态子目录中。 我使用选项spark.sql.streaming.minBatchesToRetain来限制保留多少历史记录,但是隐藏的临时crc文件似乎永远保留在文件系统中。

示例,让我们看看commits子目录中的常规文件:

ls checkpoint/commits/     
6605  6606  6607  6608  6609  6610  6611  6612  6613  6614

现在,让我们包含隐藏文件

$ls -a checkpoint/commits/ | head
.
..
..0.085caf0c-c924-411c-8907-5b1c3856de9d.tmp.crc
..1000.6c40ff1c-2ad5-4c88-a04b-1545089904db.tmp.crc
..1001.abebcebd-2cb9-49e7-a058-79735b8f1b9d.tmp.crc
..100.1c0f0619-63a5-46e4-9122-0f2ef6317d3b.tmp.crc
..1002.880fcde1-3982-4886-aa5b-c62b7542b27f.tmp.crc
..1003.68f41a4c-096e-4449-949f-9adeb5a78673.tmp.crc
..1004.57558c08-05fe-49e0-9b0e-96d278aed5eb.tmp.crc
..1005.5f653083-7e4d-4931-9cd3-c53aa0c0d524.tmp.crc

$ls -a checkpoint/commits/ | grep -c .tmp.crc
6657

仅运行了几个小时,我仅在commits子目录中就有6000多个文件,而在完整的检查点目录中,我大约有10万个文件。作业运行了几个小时。

这是Spark中的错误吗?有谁知道如何告诉Spark自动删除旧的*.tmp.crc文件?

0 个答案:

没有答案