【问题标题】:Do Spark Streaming and Spark Structured Streaming use same micro-batch engine?Spark Streaming 和 Spark Structured Streaming 使用相同的微批处理引擎吗?
【发布时间】:2019-06-25 14:47:41
【问题描述】:

Spark Streaming 和 Spark Structured Streaming 是否使用相同的微批处理调度器引擎? Spark Structured Streaming 的延迟是否比 Spark Streaming 低?

【问题讨论】:

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


    【解决方案1】:

    Spark Streaming 和 Spark Structured Streaming 是否使用相同的微批处理调度器引擎

    当然不是。它们在内部是不同的,但共享流和记录的相同高级概念。

    在 Spark Structured Streaming 中,您可以使用 DataStreamWriter.foreachDataStreamWriter.foreachBatch 方法尽可能接近 Spark Streaming 中的情况。

    主要区别在于如何描述流式管道。在 Spark Structured Streaming 中,您使用 Spark SQL 的 Dataset API,而 Spark Streaming 则押注 Spark Core 的 RDD API。两者最终都是基于 RDD 的计算,但 Spark SQL 使用更高级别的抽象(例如Dataset API)。

    他们都使用“微批量调度引擎”吗?是的,但是 Spark Structured Streaming 正在尝试利用一些可以连续查询的数据源(并且没有微批处理)。

    Spark Structured Streaming 的延迟是否比 Spark Streaming 低?

    这很难回答。 Spark Streaming 的创建者决定开发 Spark Structured Streaming,并希望在查询性能和表现力方面取得更好的成绩。不再推荐使用 Spark Streaming。

    【讨论】:

      【解决方案2】:

      Structered Streaming 主要是一种更高级别的抽象,允许您定义流逻辑,然后它使用 Spark SQL 引擎在同一个微批处理引擎上执行。

      默认情况下,结构化流式处理使用微批处理引擎,但是如果您使用的是 Spark 2.3+,那么您可以使用 连续模式,您可以在其中降低到 1 millisecond 延迟

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-13
        • 2021-05-22
        • 2020-03-19
        • 2017-12-18
        • 2023-03-31
        • 2021-11-24
        • 1970-01-01
        • 2020-01-05
        相关资源
        最近更新 更多