中间件速查手册
大数据计算阶段

Stage 是什么?

遇到 shuffle 就被切开,一个 Stage 内部可以流水线执行

类比:接力赛的分段,交棒(shuffle)处必须等所有人都到齐

Stage 的边界

宽依赖是分界线:shuffle 之前的数据必须先全部写完,shuffle 之后的 Task 才能开始拉取。所以一个 Stage 内的 Task 可以并行流水,跨 Stage 必须等上一段全部完成。

Task 数量怎么来的

Stage 的 Task 数 = 输入 RDD 的分区数。读 HDFS 时按 block 切(128MB 一个分区),shuffle 后按 `spark.sql.shuffle.partitions`(默认 200)切。分区数太少会倾斜,太多会调度开销大。

看懂 Spark UI

Spark UI 里每个 Stage 一条横条,长度是耗时。如果某个 Stage 明显长于其他,先看它的 Task 耗时分布:均匀地慢是数据量大,少数几个特别慢就是数据倾斜。

它出现在这些中间件里

相关概念