当前位置:  开发笔记 > 编程语言 > 正文

YARN没有使用Google Dataproc实例中的所有可用内存

如何解决《YARN没有使用GoogleDataproc实例中的所有可用内存》经验,为你挑选了1个好方法。

我正在使用h1-highmem-16每台内存为104 GB的计算机运行Dataproc作业.

我仔细检查了Google控制台中实例的大小,确实是所有工作人员和主人h1-highmem-16.

不过,我收到这个错误:

Container killed by YARN for exceeding memory limits. 56.8 GB of 54 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.

为什么YARN没有使用所有104 GB的内存?



1> Dennis Huo..:

Dataproc配置内存设置以适合每台机器2个Spark执行器,因此每个容器应该是每个NodeManager容量的一半.

您可以选择覆盖spark.executor.memory,也可以spark.yarn.executor.memoryOverhead同时spark.executor.cores更改将执行程序打包到每台计算机上的方式.spark.executor.cores默认为机器核心的一半,因为机器的一半内存被给予每个执行器.在您的情况下,这意味着每个Spark执行程序都尝试在同一进程中并行运行8个任务.

您可以通过减少执行程序核心来有效地增加每个任务的内存,但保持其他所有内容相同,例如,spark.executor.cores=6即使您将其他所有内容保持不变,每个任务内存也会增加33%.这些可以在工作提交时指定:

gcloud dataproc jobs submit spark --properties spark.executor.cores=6

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有