In Hadoop, wie der aktuelle Prozess von -copyFromLocal angezeigt wird

10

Ich bin noch ein Anfänger von Hadoop und dieses Mal habe ich versucht, eine 106-GB-Datei zu verarbeiten. Früher habe ich -copyFromLocaldiese 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!

Bang Dao
quelle

Antworten:

14

CopyFromLocalkann den Fortschritt des Dateikopierens nicht anzeigen. Alternativ können Sie eine andere Shell öffnen und die ausführen $ watch hadoop fs -ls <filenameyouarecopying>. Dadurch werden die Datei und ihre Größe alle 2,0 Sekunden angezeigt.

datarockz2
quelle
1
Wenn es nicht dokumentiert ist, existiert es nicht. :-)
SunnyShah
1

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.

Travis Campbell
quelle
1

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.

Anan
quelle
1

Es ist auch möglich, den Fortschritt des Lesens der lokalen Datei mit dem pvBefehl zu verfolgen und den Dateiinhalt an hdfs dfsstdin weiterzuleiten:

pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt

Alexander Rodin
quelle
pvist so ein unterbewertetes Tool IMO. Macht den Job hier perfekt.
Michael Mior