1

我有一份在 EMR 中触发的工作。主控触发映射器。一旦完成,它会在内存中加载一个重量级操作,然后最终会转储出去。现在,在集群上运行的作业会在几分钟后失败,因为它耗尽了堆空间。默认情况下,它在其主服务器上设置约 1000m

尝试了下面的确切操作,但没有奏效。程序仍设置为1000m

--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop --args -s,mapred.child.java.opts=Xmx4000m

4

1 回答 1

1

EMR 提供了一种特定的方式来设置 namenode 的堆大小,在启动集群时使用以下引导命令:

--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-daemons --args --namenode-heap-size=4096

您也可以尝试使用配置文件。创建一个 XML 配置文件并将其上传到 s3。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
      <name>mapred.child.java.opts</name>
      <value>-Xmx4096m</value>
  </property>
</configuration>

现在使用以下引导操作启动集群:

--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop --args "--mapred-config-file, s3:///custom-heap-size.xml"

于 2013-08-06T18:36:20.987 回答