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!

Bang Dao
źródło

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.

datarockz2
źródło
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

Alexander Rodin
źródło
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.

Travis Campbell
źródło
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.

Anan
źródło