2016-12-21 63 views
2

我在具有〜10個節點的aws emr羣集上運行一些Map-Reduce-Jobs。 (emr 4.7.11,m3.xlarge)由於光盤已滿,AWS EMR羣集失敗

工作正在運行時,工作節點在〜4小時後開始逐個死亡。 在日誌中,我發現了以下錯誤:

"1/3 local-dirs are bad: /mnt/yarn; 1/1 log-dirs are bad: /var/log/hadoop-yarn/containers"

磁盤上的工作節點上都在當節點失敗使用96%。 因此,我假設節點上的磁盤達到100%,並且沒有文件可以寫入磁盤。

所以我試着給每個實例附加一個500GB的EBS卷。但是Hadoop只使用/mnt並且不使用額外的卷(/mnt2)。

如何將AWS EMR集羣配置爲使用/mnt2? 我試過使用配置文件,但羣集現在失敗,引導時出現錯誤On the master instance (i-id), bootstrap action 6 returned a non-zero。 不幸的是引導行動6日誌中的S3存儲桶

配置文件:

[ 
    { 
    "Classification": "core-site", 
    "Properties": { 
     "hadoop.tmp.dir": "/mnt2/var/lib/hadoop/tmp" 
    } 
    }, 
    { 
    "Classification": "mapred-site", 
    "Properties": { 
     "mapred.local.dir": "/mnt2/var/lib/hadoop/mapred" 
    } 
    } 
] 

任何人有一個提示,爲何在集羣上啓動失敗? 還是有另一種方法來增加m3.xlarge實例的初始EBS卷?

https://forums.aws.amazon.com/thread.jspa?threadID=225588 貌似相同的問題,但沒有解決

回答

0

如果磁盤(如到/ mnt /)超出90%,則核心/任務節點將被標記爲YARN不健康,無法使用。 在 http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage現在,如果附加EBS卷與EMR API(當你提供你的集羣),然後EMR不會自動使用某些屬性的卷。例如:mapred.local.dir將使用所有安裝。但是,一些屬性(如hadoop.tmp.dir,yarn.nodemanager.log-dirs)可能不會使用所有安裝。對於這些屬性,您需要添加逗號目錄路徑作爲值,並使用配置API或手動編輯必要的文件來設置它們。

<property> 
    <name>mapred.local.dir</name> 
    <value>/mnt/mapred,/mnt1/mapred</value> 
    </property> 

    <property> 
    <name>hadoop.tmp.dir</name> 
    <value>/mnt/var/lib/hadoop/tmp</value> 
    </property> 
相關問題