W Hadoop: jak pokazać bieżący proces -copyFromLocal


10

Nadal jestem uczniem Hadoopa dla początkujących i tym razem próbowałem przetworzyć plik o pojemności 106 GB. Kiedyś -copyFromLocalkopiowałem ten duży plik do mojego systemu plików Hadoop DFS, ale ponieważ plik jest duży, muszę długo czekać bez pojęcia o bieżącym stanie kopiowania.

Czy za pomocą tego polecenia można wyświetlić bieżący stan kopiowania plików?

Z góry dziękuję wam za pomoc!

Odpowiedzi:


14

CopyFromLocalnie ma możliwości wyświetlenia postępu kopiowania pliku. Alternatywnie możesz otworzyć kolejną powłokę i uruchomić $ watch hadoop fs -ls <filenameyouarecopying>. Spowoduje to wyświetlenie pliku i jego rozmiaru raz na 2,0 sekundy.


1
Jeśli nie jest to udokumentowane, to nie istnieje. :-)
SunnyShah

2

Możliwe jest również śledzenie postępu odczytu pliku lokalnego za pomocą pvpolecenia i potokowanie zawartości pliku do hdfs dfsstandardowego wejścia:

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


pvjest tak niedocenianym narzędziem IMO. Doskonale spełnia swoją rolę.
Michael Mior

1

Nie wygląda na to, że istnieje żadna pełna opcja dla każdego polecenia kopiowania (copyFromLocal, copyToLocal, get, put). Najlepiej jest spojrzeć na rozmiar pliku w miejscu docelowym na HDFS, aby ocenić jego postęp.


1

Możesz użyć „nohup &”, aby wykonać kopiowanie jako proces w tle. nohup sprawi, że proces zostanie wykonany nawet po wylogowaniu z serwera. Gdy zajdzie taka potrzeba, możesz sprawdzić proces za pomocą „hadoop fs -ls.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.