我正在编写一个算法,用于处理内存中的“大块”数据。我使用JavaPairRDD.groupByKey()来指定块,但我不清楚如何计算最佳块大小。它越大,算法运行得越快。给定块大小,我可以估计我的内存使用量,但实际上有多少执行器内存可供我使用(而不是Spark声称自己使用)?有没有什么方法可以编程地向Spark建议我在转换链中有一个内存密集型的步骤?
lfapxunr1#
不要紧,this post解释得真的很好。您将得到(HeapSize – ReservedMemory) * (1.0 – spark.memory.fraction),对于一个4GB的堆,假定其他参数为默认设置,则该值约为1500MB。
(HeapSize – ReservedMemory) * (1.0 – spark.memory.fraction)
1条答案
按热度按时间lfapxunr1#
不要紧,this post解释得真的很好。您将得到
(HeapSize – ReservedMemory) * (1.0 – spark.memory.fraction)
,对于一个4GB的堆,假定其他参数为默认设置,则该值约为1500MB。