I run Spark (2.4)
读取的结构化流作业Kafka topic
并使用带有水印的窗口将聚合数据写回到不同的主题。在这种配置中,Spark 需要检查点目录。问题是检查点目录的大小由于以下原因而永远增长*.crc.tmp
文件永远不会被删除。这些文件存在于 commits、offsets 和 state 子目录中。
我使用选项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 多个文件,而在完整的检查点目录中,我有大约 100K 个文件。作业运行了几个小时。
这是 Spark 中的错误吗?有谁知道如何告诉Spark自动删除旧的*.tmp.crc
files ?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)