我正在研究 Spark Streaming,并尝试监控和改进流式应用程序的性能。但我对以下问题感到困惑。
- “Spark Streaming”的 Spark Portal 上每个阶段的含义是什么 应用程序。
- 并非所有“转型”都映射到任务。以及如何将“转换”定位到映射任务。
流代码快照:
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 从您的源中获取单个命令,然后优化为要在集群上执行的任务计划。一种此类优化的示例是 map-fusion :两次调用 map 进来,一个单独的 map 任务出来。 阶段 是任务组之间的更高级别边界,定义为要跨越该边界,您必须执行洗牌。
所以:
- 您在 RDD 上调用的每个运算符都会导致操作和转换。
- 这些会产生运算符的 DAG。
- DAG 被编译成阶段。
- 每个阶段都作为一系列 任务。
关于apache-spark - 流式场景的 Spark UI 上的 "Stages"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30231775/