我想知道为什么我的 Spark 流应用程序的每第四批都有一个巨大的峰值。
一些细节
我尝试过调整簇大小,但这似乎没有帮助。但没有尝试任何有条理的事情。
假设您使用默认触发器和触发器的最大偏移量(即
trigger
= 未指定(默认) 和 maxOffsetsPerTrigger
= 无)。
您的统计数据显示,峰值不是由资源不足或数据量峰值引起的,因为处理速率没有饱和,输入行和批次持续时间都没有线性增长,输入速率稳定。
由于你的峰值主要是由
addBatch
操作引起的,如果你没有任何特殊数据并在每第4批中触发特殊转换,而且每次写入都是相同的,我怀疑这是由元数据管理引起的。例如,流媒体元数据日志的压缩非常巨大并且需要时间来读取(这个问题已修复)。
您可以检查您的 RocksDB 是否有元数据设置,也可以检查 SQL 查询历史记录,看看读取或写入部分是否触发了长元数据操作。