我有一份我在EMR中触发的工作。主设备触发映射器。一旦完成,它会在内存中加载一个重量级的操作,然后甚至会丢弃。现在,在集群上运行的作业在几分钟后就会失败,因为它耗尽了堆空间。默认情况下,它在主设备上设置大约1000米
尝试下面的确切操作,但这不起作用。该计划仍设定为1000米
- bootstrap-action s3:// elasticmapreduce / bootstrap-actions / configure-hadoop --args -s,mapred.child.java.opts = Xmx4000m
答案 0 :(得分:0)
EMR提供了一种特定的方法来设置namenode的堆大小,在启动集群时使用以下bootstrap命令:
- bootstrap-action s3:// elasticmapreduce / bootstrap-actions / configure-daemons --args --namenode-堆大小= 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 &#34; - mapred-配置文件中, S3:///custom-heap-size.xml"