it-swarm.com.de

Spark - Java IOException: Fehler beim Erstellen eines lokalen Verzeichnisses in/tmp/blockmgr *

Ich habe versucht, einen langen Spark-Job auszuführen. Nach einigen Stunden Ausführung erhalte ich eine Ausnahme:

Caused by: Java.io.IOException: Failed to create local dir in /tmp/blockmgr-bb765fd4-361f-4ee4-a6ef-adc547d8d838/28 

Versucht, es zu umgehen, indem Sie Folgendes überprüfen: 

  1. Berechtigungsproblem in/tmp dir. Der Spark-Server läuft nicht als Root./tmp dir sollte jedoch für alle Benutzer beschreibbar sein.

  2. / tmp Dir hat genügend Speicherplatz.

12
OneWorld

Angenommen, Sie arbeiten mit mehreren Knoten, müssen Sie überprüfen, dass jeder Knoten an der Funkenoperation (Master/Treiber + Slaves/Knoten/Worker) beteiligt ist.

Bitte vergewissern Sie sich, dass jeder Worker/Knoten über ausreichend Speicherplatz (insbesondere den Ordner "check/tmp") und die richtigen Berechtigungen verfügt.

3
Yaron

Nachdem Sie alle Berechtigungen und den Benutzerzugriff überprüft haben.

Ich habe das gleiche Problem beim Erstellen der Komponenten in Talend Studio erhalten und es wurde behoben, indem das richtige "/" in spark scratch directory (temporäres Verzeichnis) in spark) angegeben wurde Registerkarte "Konfiguration": Dies ist erforderlich, wenn Sie die JAR-Datei in Windows erstellen und in einem Linux-Cluster ausführen.

0

Edit: Die Antwort unten hat meinen Fall letztendlich nicht gelöst. Dies liegt daran, dass einige Unterordner spark (oder einige seiner Abhängigkeiten) erstellen konnten, jedoch nicht alle. Die häufige Notwendigkeit, solche Pfade zu erstellen, würde jedes Projekt unrentabel machen. Deshalb habe ich = ausgeführt Spark (PySpark in meinem Fall) als Administrator, der den Fall gelöst hat. Letztendlich handelt es sich also wahrscheinlich doch um eine Berechtigungsfrage.


Ursprüngliche Antwort:
Ich habe das gleiche Problem gelöst, das ich auf meinem lokalen Windows Computer hatte (kein Cluster). Da es kein Problem mit Berechtigungen gab, habe ich das Verzeichnis erstellt, das Spark konnte nicht erstellt werden, d. H. Ich habe den folgenden Ordner als lokaler Benutzer erstellt und musste keine Berechtigungen für diesen Ordner ändern.

C:\Users\<username>\AppData\Local\Temp\blockmgr-97439a5f-45b0-4257-a773-2b7650d17142
0

Machen Sie eine Sicherungskopie der tmp-Cache-Datei. Bereinigen Sie das tmp-Verzeichnis und starten Sie Ihre Shell. Es wird klappen. Der gleiche Ansatz hat für mich funktioniert. 

0
Nilesh Pandey