Container is running beyond physical memory limits.

Container is running beyond physical memory limits._第1张图片


假设app没有内存泄露且heap usage正常,这个问题一般是由于memory + memoryOverhead超过yarn的监控值后Yarn的保护措施,其解决方法:


1)增加spark.yarn.executor.memoryOverhead的值,这个最小默认值是max(384M, executor mem * 0.07); 或增加spark.yarn.driver.memoryOverhead的值,这个最小默认值是max(384M, driver mem * 0.07)


2) 可适当降低spark.executor.memory或spark.driver.memory的值


3) 增加任务并行度


4)激活dynamic allocation


5)spark.memory.fraction change for 0.8 or 0.85 and reduce the spark.memory.storageFraction to 0.35 or 0.2

你可能感兴趣的:(Spark)