2013-08-06 115 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