如果 Spark Streaming 作业涉及 shuffle 和有状态处理,那么每个微批次很容易生成大量小文件。我们应该在不影响延迟的情况下减少文件数量。
问问题
13 次
1 回答
0
如果使用所有默认配置,一个 Spark Streaming 微批处理将生成 80 k 文件。这将导致 hdfs 的高 qps 和延迟。更好地更改以下配置以减少检查点文件。
配置 | 默认 | 建议 |
---|---|---|
spark.sql.streaming.minBatchesToRetain |
100 | 30 |
spark.sql.streaming.stateStore.minDeltasForSnapshot |
10 | 5 |
spark.sql.shuffle.partitions |
200 | 取决于微批量大小,50 或 100 |
所以,文件总数=minBatchesToRetain * 4 (left 2 + right 2) * partitions * operators(each join or aggregation)
如果所有配置都是默认的,它将是100 * 4 * 200 * 1 = 80 K
于 2022-02-08T01:12:37.280 回答