gpt4 book ai didi

apache-spark - Spark : executor memory exceeds physical limit

转载 作者:行者123 更新时间:2023-12-01 09:49:47 37 4
gpt4 key购买 nike

我的输入数据集大约是 150G。
我正在设置

--conf spark.cores.max=100 
--conf spark.executor.instances=20
--conf spark.executor.memory=8G
--conf spark.executor.cores=5
--conf spark.driver.memory=4G

但由于数据在执行者之间分布不均匀,我一直在得到
Container killed by YARN for exceeding memory limits. 9.0 GB of 9 GB physical memory used

这是我的问题:
1. Did I not set up enough memory in the first place? I think 20 * 8G > 150G, but it's hard to make perfect distribution, so some executors will suffer
2. I think about repartition the input dataFrame, so how can I determine how many partition to set? the higher the better, or?
3. The error says "9 GB physical memory used", but i only set 8G to executor memory, where does the extra 1G come from?

谢谢!

最佳答案

使用 yarn 时,还有另一个设置可以计算为执行程序发出 yarn 容器请求的大小:

spark.yarn.executor.memoryOverhead

它默认为 0.1 * 您的执行程序内存设置。它定义了除了您指定的执行程序内存之外还需要多少额外的开销内存。先尝试增加这个数字。

此外, yarn 容器不会为您提供任意大小的内存。它只会返回分配的内存大小是其最小分配大小的倍数的容器,该大小由以下设置控制:
yarn.scheduler.minimum-allocation-mb

将其设置为较小的数字将降低您“超出”您要求的金额的风险。

我通常还将下面的键设置为大于我想要的容器大小的值,以确保 Spark 请求控制我的执行器有多大,而不是在它们上踩线。这是 yarn 将发出的最大容器尺寸。
nodemanager.resource.memory-mb

关于apache-spark - Spark : executor memory exceeds physical limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286656/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com