【问题标题】:Does Spark streaming receivers continue pulling data for every block interval during the current micro-batchSpark 流式接收器是否在当前微批处理期间继续为每个块间隔提取数据
【发布时间】:2020-04-22 14:54:44
【问题描述】:

对于每个 spark.streaming.blockInterval(比如 1 分钟),接收器都会监听流式数据源的数据。假设当前的微批处理花费了非常长的时间来完成(故意的,比如说 20 分钟)。在这个微批处理期间,Receivers 是否仍会监听流式传输源并将其存储在 Spark 内存中?

当前管道使用 Spark 结构化流在 Azure Databricks 中运行。 谁能帮我理解这一点!

【问题讨论】:

    标签: apache-spark spark-streaming spark-structured-streaming


    【解决方案1】:

    在上述情况下,Spark 将继续从 Kafka 消费/拉取数据,微批处理将继续堆积并最终导致内存不足 (OOM) 问题。 为了避免场景启用背压设置,

    spark.streaming.backpressure.enabled=true

    https://spark.apache.org/docs/latest/streaming-programming-guide.html

    有关 Spark 背压功能的更多详细信息

    【讨论】:

    • 感谢 Quicksilver 的澄清。一跟进。为了便于理解,有什么方法可以查看接收者在积压队列的火花内存方面消耗了多少?
    • 是的,您可以通过内置的 Spark 指标接收器查看驱动程序和执行程序的内存使用情况以及批处理延迟指标。请关注以下网址,spark.apache.org/docs/latest/monitoring.html
    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2017-06-24
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2019-01-14
    相关资源
    最近更新 更多