tor*_*ted 7 apache-spark spark-structured-streaming
我正在使用结构化流媒体从文件源中提取数据.我有一个检查点设置,它可以正常工作,除了我不明白在几种情况下会发生什么.如果我的流媒体应用程序运行了很长时间,检查点文件将继续变得更大或最终被清理.如果永远不清理它是否重要?似乎最终它会变得足够大,以至于程序需要很长时间才能解析.
我的另一个问题是,当我手动删除或更改检查点文件夹,或更改为其他检查点文件夹时,不会提取新文件.文件被识别并添加到检查点,但文件实际上没有被摄取.这让我担心,如果检查点文件夹被改变,我的摄取会搞砸.在这些情况下,我无法找到有关正确程序的更多信息.
在运行我的 Structured Streaming 应用程序 6 个月后,我找到了一些我认为的答案。检查点文件每执行 10 次就会压缩一次,并且会继续增长。一旦这些压缩文件变大~2gb,处理时间就会明显减少。因此,每执行 10 次就会有大约 3-5 分钟的延迟。我清理了检查点文件,因此重新开始,执行时间立即恢复正常。
对于我的第二个问题,我发现基本上有两个检查站位置。指定的检查点文件夹和表目录中的另一个 _spark_metadata。两者都需要删除才能重新开始检查点。
如果我的流媒体应用程序运行了很长时间,检查点文件将永远永久变大,或者最终被清除
结构化流保持一个后台线程,该线程负责删除状态的快照和增量,因此,除非您的状态确实很大并且您拥有的空间很小,否则您不必担心它,在这种情况下,您可以配置重新训练的增量/快照Spark商店。
当我手动删除或更改检查点文件夹,或更改为其他检查点文件夹时,不会吸收新文件。
我不太确定这是什么意思,但在特殊情况下只应删除检查点数据。只要存储的数据类型向后兼容,结构化流就可以保持版本升级之间的状态。我真的没有很好的理由来更改检查点的位置或手动删除文件,除非发生了不好的事情。
| 归档时间: |
|
| 查看次数: |
2718 次 |
| 最近记录: |