2013-08-06 87 views
0

我有一个工作,我从EMR中触发。主人触发映射器。一旦完成,它会在内存中加载一个重量级的操作,然后evenutualy会转储出去。现在,在群集上运行的作业在几分钟后失败,因为堆耗尽了空间。默认情况下,它在其主设备上设置大约1000米如何为EMR Master设置堆大小

尝试了下面的确切操作,但没有奏效。该计划仍设置1000米

--bootstrap行动S3:// elasticmapreduce /自举的动作/配置-Hadoop的--args -s,mapred.child.java.opts = Xmx4000m

回答

0

有通过EMR提供一种特定的方式来设置名称节点的堆的大小,使用下面的引导程序命令而启动群集:

--bootstrap动作S3:// elasticmapreduce /自举-动作/配置-守护进程 - -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行动S3:// elasticmapreduce /自举的动作/配置-Hadoop的--args “--mapred- config-file, s3:///custom-heap-size.xml“

+0

参数namenode-heap-size。这是否也设置为主人和奴隶? – user2655578

+0

此参数仅用于设置HDFS的NameNode的堆大小。在这里阅读NameNode:http://wiki.apache.org/hadoop/NameNode – Amar