apache-spark - Structured Streaming 是实时流处理引擎吗?

标签 apache-spark spark-streaming apache-flink

我们知道 Flink 是一个真正的实时流处理引擎,它可以在记录到达时处理它们,我们也知道 Spark Streaming 是一个微批处理流处理引擎。

但是我们也知道 spark 发布了结构化流,怎么样?是不是也像 Flink 一样是真正的实时流处理引擎,可以在记录到达时立即处理,而不是微批处理或仍然使用微批处理模式?

最佳答案

Is Structured Streaming real-time stream processing engine?

TL;DR 不是。或者是。取决于“实时流处理引擎”的定义。

直到 2.3.0-SNAPSHOT(当前 master),结构化流式处理使用微批处理,似乎没有任何迹象表明它在未来的版本中会有所不同。

深入了解结构化流的流查询引擎

StreamExecution (流式查询的执行环境)starts a separate thread of execution检查新记录是否可用。

一旦启动,microBatchThread(它是常规 Java 的 java.lang.Thread 对象)执行 runBatchesstarts execution every trigger interval .

查看代码会发现流式查询的内部执行引擎对每个触发器进行批处理。

我的理解是,就微批处理而言,并没有真正改变。在 Spark Streaming 中就是这样,在 Structured Streaming 中也有使用。


无耻插件:您可能想更详细地探索这个主题,阅读 my gitbook about Structured Streaming我写这篇文章的目的正是为了理解非常底层的细节。欢迎评论。

关于apache-spark - Structured Streaming 是实时流处理引擎吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771691/

相关文章:

java - Flink时间窗口和滑动时间窗口有什么区别?

java - Flink Job Cluster 与 Session Cluster - 部署和配置

java - 在 Spark、Java 中合并元组两个值的数据

java - 对 JavaDStream 进行排序 - Spark Streaming

hadoop - 来自文件夹(不是 HDFS)的 Apache Spark Streaming

python - 为什么我的 Spark Streaming 工作变慢了

apache-flink - 在 Apache Flink 中从 HDFS 地址流式传输文件

apache-spark - 使用pyspark获取列的数据类型

java - Spark和MongoDB应用程序在Scala 2.10 maven构建错误

java - 使用 IN 子句过滤 Spark Cassandra 连接器