apache-spark - 流式场景的 Spark UI 上的 "Stages"是什么意思

标签 apache-spark spark-streaming

我正在研究 Spark Streaming,并尝试监控和改进流式应用程序的性能。但我对以下问题感到困惑。

  1. “Spark Streaming”的 Spark Portal 上每个阶段的含义是什么 应用程序。
  2. 并非所有“转型”都映射到任务。以及如何将“转换”定位到映射任务。

流代码快照:

val transformed = input.flatMap(i => processInput(i))
val aggregated = transformed.reduceByKeyAndWindow(reduce(_, _), Seconds(aggregateWindowSizeInSeconds), Seconds(slidingIntervalInSeconds))
val finalized = aggregated.mapValues(finalize(_))
finalized

(Only the Flatmap stages occurred on the portal.)

Spark 流媒体门户 Spark Streaming, Spark Portal

谢谢,

最佳答案

Spark 从您的源中获取单个命令,然后优化为要在集群上执行的任务计划。一种此类优化的示例是 map-fusion :两次调用 map 进来,一个单独的 map 任务出来。 阶段 是任务组之间的更高级别边界,定义为要跨越该边界,您必须执行洗牌。

所以:

  • 您在 RDD 上调用的每个运算符都会导致操作和转换。
  • 这些会产生运算符的 DAG。
  • DAG 被编译成阶段。
  • 每个阶段都作为一系列 任务。

关于apache-spark - 流式场景的 Spark UI 上的 "Stages"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30231775/

相关文章:

apache-spark - 无法使用 Spark 连续流处理数据

apache-spark - Spark 在读取有序文件时是否保留记录顺序?

dataframe - Spark 数据帧的分区数?

java - 将 Spark Streaming 中的新值与之前的平均值进行比较

apache-spark - 如何使用 Kubernetes 在 spark 集群中调度作业

apache-spark - 如何设置 pod 以使用所有可用的 CPU 内核

apache-spark - 发送Spark流指标以打开tsdb

java - 如何在不使用collect函数的情况下有效地将rdd转换为list

java - 我怎样才能只编译 Spark Core 和 Spark Streaming(这样我就可以获得 Streaming 的单元测试实用程序)?

java - 为什么 Kafka Direct Stream 会为每条消息创建一个新的解码器?