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!

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.


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.


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.


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


pvist so ein unterbewertetes Tool IMO. Macht den Job hier perfekt.
Michael Mior
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.