Spark的reduceByKey是否使用固定数量的内存,或者使用线性数量的键?

问题描述 投票:0回答:1

据我所知,存在外部排序和/或在Hadoop MapReduce中的解决方案,这些解决方案在按键对数据进行排序/分组以允许通过每个键的聚合函数进行进一步管道传输时,允许使用恒定数量的内存,而不用更多内存。

假定还原状态也是一个常数,就像加法一样。

这种恒定内存分组/排序是否也可用于Apache Spark或Flink,如果可以,在reduceByKey或AggregateByKey的情况下,是否有任何特定的配置或编程方式要求这种恒定内存的处理方式?

apache-spark mapreduce apache-flink
1个回答
0
投票

这两个系统都需要隐式执行该操作,因为Java进程仅获得固定数量的主内存。请注意,当要排序的数据变得更大时,需要将数据溢出到磁盘上。对于排序并根据您的查询,这可能意味着需要在主内存和磁盘上实现完整的数据集。

© www.soinside.com 2019 - 2024. All rights reserved.