Sunt încă un începător în Hadoop, iar de data aceasta am încercat să procesez un fișier de 106GB. am folosit -copyFromLocal
să copiez acel fișier mare în DFS-ul meu Hadoop, dar, deoarece fișierul este mare, trebuie să aștept mult timp fără să am un indiciu despre starea actuală a copierii.
Există vreo modalitate de a afișa starea curentă de copiere a fișierului cu această comandă?
Vă mulțumesc în avans pentru ajutor!
CopyFromLocal
nu are posibilitatea de a afișa progresul copierii fișierelor. Alternativ, ați putea deschide un alt shell și să rulați comanda $ watch hadoop fs -ls <filenameyouarecopying>
. Acest lucru va afișa fișierul și dimensiunea acestuia o dată la fiecare 2,0 secunde.
- Dacă nu este documentat, înseamnă că nu există. 🙂 – > Por SunnyShah.
De asemenea, este posibil să urmăriți progresul citirii fișierului local utilizând pv
comanda și să direcționați conținutul fișierului către hdfs dfs
stdin:
pv mylargefile.txt | hdfs dfs -put - /path/to/file/on/hdfs/mylargefile.txt
pv
este un astfel de instrument subevaluat IMO. Face treaba aici perfect. – > .
Se pare că nu există o opțiune verbose pentru niciuna dintre comenzile de copiere (copyFromLocal, copyToLocal, get, put). Cea mai bună soluție este, probabil, să vă uitați la dimensiunea fișierului la destinație pe HDFS pentru a evalua progresul.
Puteți utiliza „nohup &” pentru a executa copierea ca proces de fundal. nohup va face ca procesul să se execute chiar și după ce vă deconectați de pe server. Oricând aveți nevoie, puteți verifica procesul folosind „hadoop fs -ls .