Apache spark Spark结构化流检查点清理

Apache spark Spark结构化流检查点清理,apache-spark,spark-structured-streaming,Apache Spark,Spark Structured Streaming,我正在使用结构化流从文件源摄取数据。我有一个检查点设置,它可以正常工作,就我所知,除了我不知道会发生什么情况下,在一些夫妇。如果我的流媒体应用程序运行很长时间,检查点文件是否会永远变大,或者最终会被清除。如果它从未被清理过又有什么关系呢?似乎最终它会变得足够大,以至于程序需要很长时间才能解析 我的另一个问题是,当我手动删除或更改检查点文件夹,或更改为其他检查点文件夹时,不会接收新文件。可以识别文件并将其添加到检查点,但该文件实际上并未被摄取。这让我担心,如果检查点文件夹被改变,我的摄入就会出错。

我正在使用结构化流从文件源摄取数据。我有一个检查点设置,它可以正常工作,就我所知,除了我不知道会发生什么情况下,在一些夫妇。如果我的流媒体应用程序运行很长时间,检查点文件是否会永远变大,或者最终会被清除。如果它从未被清理过又有什么关系呢?似乎最终它会变得足够大,以至于程序需要很长时间才能解析

我的另一个问题是,当我手动删除或更改检查点文件夹,或更改为其他检查点文件夹时,不会接收新文件。可以识别文件并将其添加到检查点,但该文件实际上并未被摄取。这让我担心,如果检查点文件夹被改变,我的摄入就会出错。在这种情况下,我找不到多少关于正确程序的信息

如果我的流媒体应用程序运行很长时间,检查点文件将丢失 只是永远继续变大,还是最终被清理干净

结构化流保留一个后台线程,负责删除状态的快照和增量,因此您不应该担心它,除非您的状态非常大,并且您拥有的空间量很小,在这种情况下,您可以配置重新训练的增量/快照存储

当我手动删除或更改检查点文件夹,或更改为 不同的检查点文件夹没有接收新文件


我不太清楚您在这里的意思,但您应该只在特殊情况下删除检查点数据。结构化流允许您在版本升级之间保持状态,只要存储的数据类型向后兼容。除非发生了什么不好的事情,否则我真的看不出有什么好的理由改变检查点的位置或手动删除文件。

在运行我的结构化流媒体应用程序6个月后,我想我找到了一些答案。检查点文件每执行10次就压缩在一起,并继续增长。一旦这些压缩的文件变得大到2gb,处理时间就会明显减少。因此,每10次处决大约有3-5分钟的延迟。我清理了检查点文件,因此重新开始,执行时间立即恢复正常


对于第二个问题,我发现基本上有两个检查站位置。指定的检查点文件夹和表目录中的另一个_spark_元数据。这两个都需要删除才能重新开始检查点。

请在这里扩展第1点。我面临着一个类似的问题,我可以看到我的HDFS使用率在增加。结构化流媒体如何确定如何/何时删除快照以及如何配置spark存储?您好,我也面临同样的问题,但我不想清理整个checkpnt文件,我想在hdfs中的25天之前删除文件,因为我们在hdfs中有25天保留策略。请帮助我解决此问题。您能告诉我吗。。如果长时间不清理,检查点目录是否会产生问题?例如磁盘空间不足问题磁盘空间不足取决于您有多少空间,所以我无法回答。但正如我在每个检查点文件~2gb后所描述的,速度明显减慢。我目前正在编写spark流式查询。据我所知,这与水印有关。我们需要为每个查询设置水印和可靠阈值。Spark将在阈值时间之后删除检查点。但查询将毫无问题地继续进行。但我从未测试过。没有人告诉我这是对的还是错的。