首页 > 解决方案 > EMR 未检测到所有内存

问题描述

我使用 EMR 5.18 运行 Spark 任务。这是设置:

在此处输入图像描述

出于任何原因,EMR 无法检测到工作节点上的所有可用内存。我没有在 EMR 配置部分添加任何内容,这都是默认设置。

在此处输入图像描述

知道是什么原因造成的吗?谢谢。

编辑:关于yarn.nodemanager.resource.memory-mb. 在用户界面中它说28672,但在yarn-site.xml它的352768

这是安装的应用程序列表: Hive 2.3.3, Pig 0.17.0, Hue 4.2.0, Spark 2.3.2, Ganglia 3.7.2, Presto 0.210, Livy 0.5.0, Zeppelin 0.8.0, Oozie 5.0.0

Edit2:似乎原因是我安装了 HBase,但现在的问题是如何重新分配内存。

标签: apache-sparkhadoopamazon-emr

解决方案


在 RM 屏幕中,单击每个节点的 HTTP 地址链接以转到每个节点管理器的 Web UI。

在那里,单击工具 > 配置,然后找到yarn.nodemanager.resource.memory-mb设置。这应该指示该节点上分配给 YARN NodeManager的内存量。

EMR 设置的默认值取决于 EC2 实例类型以及是否安装了 HBase。它们列在亚马逊的在线文档中:

您可以设置配置变量来调整 MapReduce 作业的性能... 默认值因集群中使用的节点的 EC2 实例类型而异。HBase 在使用 Amazon EMR 版本 4.6.0 及更高版本时可用。安装 HBase 时使用不同的默认值。

另一个页面提供了几种专门更改 EMR 集群默认值的替代方法。


推荐阅读