2016-12-21 4 views
2

Ich führe einige Map-Reduce-Jobs auf einem aws emr-Cluster mit ~ 10 Knoten aus. (emr 4.7.11, m3.xlarge)AWS EMR-Cluster schlägt fehl, weil die CD voll ist

Während der Job ausgeführt wird, beginnen die Worker-Knoten nach ~ 4 Stunden nacheinander zu sterben. In den Protokollen fand ich die folgenden Fehler:

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

Die Scheiben auf dem Arbeitsknoten bei 96% verwendet wurden, wenn die Knoten fehlgeschlagen. Also nehme ich an, dass die Festplatten auf den Knoten 100% erreicht haben und keine Dateien auf die Festplatte geschrieben werden konnten.

Also habe ich versucht, ein 500GB EBS Volume an jede Instanz anhängen. Hadoop verwendet jedoch nur /mnt und verwendet nicht das zusätzliche Volume (/mnt2).

Wie konfiguriere ich den AWS EMR Cluster zur Verwendung von /mnt2? Ich habe versucht, eine Konfigurationsdatei zu verwenden, aber der Cluster schlägt jetzt mit dem Fehler On the master instance (i-id), bootstrap action 6 returned a non-zero beim Bootstrap fehl. leider gibt es Bootstrap-Aktion 6 log in der s3 Eimer

Die Konfigurationsdatei:

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

Jeder hat einen Hinweis, warum der Cluster beim Start fehlschlägt? Oder gibt es eine andere Möglichkeit, das anfängliche EBS-Volumen der Instanzen von m3.xlarge zu erhöhen?

https://forums.aws.amazon.com/thread.jspa?threadID=225588 Sieht aus wie das gleiche Problem, aber es gibt keine Lösung

Antwort

0

, wenn der Datenträger (wie/mnt /) geht über 90%, so wird der Kern/Task-Knoten wird ungesund und unbrauchbar durch GARN markiert werden. Siehe yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage in http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

Nun, wenn Sie EBS-Datenträger mit EMR API (während Sie Bereitstellung des Clusters) anhängen, dann tut EMR automatisch die Mengen für bestimmte Eigenschaften verwenden. Zum Beispiel: mapred.local.dir verwendet alle Mounts. Einige Eigenschaften wie (hadoop.tmp.dir, yarn.nodemanager.log-dirs) können jedoch nicht alle Mounts verwenden. Für solche Eigenschaften müssen Sie Komma-Verzeichnispfade als Werte hinzufügen und sie mithilfe der Konfigurations-API festlegen oder die erforderlichen Dateien manuell bearbeiten.

<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> 
Verwandte Themen