【发布时间】:2019-06-25 14:47:41
【问题描述】:
Spark Streaming 和 Spark Structured Streaming 是否使用相同的微批处理调度器引擎? Spark Structured Streaming 的延迟是否比 Spark Streaming 低?
【问题讨论】:
标签: apache-spark spark-streaming spark-structured-streaming
Spark Streaming 和 Spark Structured Streaming 是否使用相同的微批处理调度器引擎? Spark Structured Streaming 的延迟是否比 Spark Streaming 低?
【问题讨论】:
标签: apache-spark spark-streaming spark-structured-streaming
Spark Streaming 和 Spark Structured Streaming 是否使用相同的微批处理调度器引擎
当然不是。它们在内部是不同的,但共享流和记录的相同高级概念。
在 Spark Structured Streaming 中,您可以使用 DataStreamWriter.foreach 或 DataStreamWriter.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。
【讨论】:
Structered Streaming 主要是一种更高级别的抽象,允许您定义流逻辑,然后它使用 Spark SQL 引擎在同一个微批处理引擎上执行。
默认情况下,结构化流式处理使用微批处理引擎,但是如果您使用的是 Spark 2.3+,那么您可以使用 连续模式,您可以在其中降低到 1 millisecond 延迟
【讨论】: