Lasse YARN Appcache vor dem erneuten Versuch bereinigen

9

Die Situation ist die folgende:

  1. Eine YARN-Anwendung wird gestartet. Es wird geplant.
  2. Es schreibt viel in sein Appcache-Verzeichnis.
  3. Die Anwendung schlägt fehl.
  4. YARN startet es neu. Es wird ausstehend, da nicht genügend Speicherplatz vorhanden ist, um es zu planen. Die Festplatten werden von dem Appcache aus dem fehlgeschlagenen Lauf gefüllt.

Wenn ich manuell eingreifen und die Anwendung beenden, wird der Speicherplatz wieder frei. Jetzt kann ich die Anwendung manuell neu starten und es ist in Ordnung.

Ich wünschte, ich könnte die automatische Wiederholung sagen, die Festplatte zu bereinigen. Alternativ nehme ich an, dass die verwendete Festplatte als Teil der neuen Zuweisung gezählt werden kann, da sie ohnehin zur Anwendung gehört.

Ich nehme gerne jede Lösung, die Sie anbieten können. Ich weiß nicht viel über YARN. Es ist eine Apache Spark-Anwendung, die mit spark-submit in yarn-client mode gestartet wurde. Die Dateien, die den Datenträger füllen, sind die Shuffle-Spill-Dateien.

    
Daniel Darabos 18.08.2015, 21:18
quelle

1 Antwort

2

Hier ist was passiert:

  1. Wenn Sie eine Garnanwendung einreichen, wird ein eigener lokaler Ressourcenordner erstellt (appcache Verzeichnis).
  2. Innerhalb dieses Verzeichnisses funke block manager erstellt Verzeichnis zum Speichern von Blockdaten. Wie bereits erwähnt:
  

lokale Verzeichnisse und werden beim JVM-Exit nicht gelöscht, wenn der externe Shuffle-Dienst verwendet wird.

  1. Dieses Verzeichnis kann bereinigt werden:

    • Shutdown-Hook . Dies geschieht, wenn Sie die Anwendung beenden.
    • Garn-Löschdienst. Dies sollte automatisch beim Beenden der Anwendung erfolgen. Stellen Sie sicher, dass yarn.nodemanager.delete.debug-delay-sec = 0 ist. Ansonsten gibt es einige ungelöste Garnkäfer
prudenko 21.03.2017 21:26
quelle

Tags und Links