对于每个spark.streaming.blockInterval(例如,1分钟(,接收器都会侦听流式数据源。假设当前的微批处理需要一段不自然的长时间才能完成(根据意图,比如20分钟(。在这个微批处理过程中,接收器还会监听流源并将其存储在Spark内存中吗?
当前管道通过使用Spark结构化流在Azure Databricks中运行。有人能帮我理解吗!
在上述情况下,Spark将继续消耗/从Kafka中提取数据,微批处理将继续堆积,最终导致内存不足(OOM(问题。为了避免启用背压设置的情况,
spark.streaming.backpressure.enabled=真
https://spark.apache.org/docs/latest/streaming-programming-guide.html
有关Spark背压功能的更多详细信息