Ich bin noch ein Anfänger von Hadoop und dieses Mal habe ich versucht, eine 106-GB-Datei zu verarbeiten. Früher habe ich -copyFromLocal
diese große Datei in mein Hadoop DFS kopiert, aber da die Datei groß ist, muss ich lange warten, ohne einen Hinweis auf den aktuellen Kopierstatus zu haben.
Gibt es eine Möglichkeit, den aktuellen Status des Dateikopierens mit diesem Befehl anzuzeigen?
Vielen Dank im Voraus für Ihre Hilfe!
Es sieht nicht so aus, als gäbe es eine ausführliche Option für einen der Kopierbefehle (copyFromLocal, copyToLocal, get, put). Am besten überprüfen Sie wahrscheinlich die Größe der Datei am Zielort in HDFS, um den Fortschritt zu messen.
quelle
Sie können "nohup &" verwenden, um das Kopieren als Hintergrundprozess auszuführen. nohup führt den Prozess auch dann aus, wenn Sie sich vom Server abmelden. Wann immer Sie es brauchen, können Sie den Prozess mit "hadoop fs -ls" überprüfen.
quelle
Es ist auch möglich, den Fortschritt des Lesens der lokalen Datei mit dem
pv
Befehl zu verfolgen und den Dateiinhalt anhdfs dfs
stdin weiterzuleiten:pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt
quelle
pv
ist so ein unterbewertetes Tool IMO. Macht den Job hier perfekt.