Di Hadoop, cara menunjukkan proses -copyFromLocal saat ini

10

Saya masih seorang pembelajar pemula dari Hadoop, dan kali ini saya mencoba untuk memproses file 106GB. Saya dulu -copyFromLocalmenyalin file besar itu ke Hadoop DFS saya, tetapi karena file itu besar saya harus menunggu lama tanpa petunjuk tentang status penyalinan saat ini.

Apakah ada cara untuk menunjukkan status penyalinan file saat ini dengan perintah ini?

Terima kasih sebelumnya atas bantuan Anda!

Bang Dao
sumber

Jawaban:

14

CopyFromLocaltidak memiliki kemampuan untuk menampilkan kemajuan menyalin file. Atau, Anda dapat membuka shell lain dan menjalankan $ watch hadoop fs -ls <filenameyouarecopying>. Ini akan menampilkan file dan ukurannya setiap 2,0 detik sekali.

datarockz2
sumber
1
Jika tidak didokumentasikan maka tidak ada. :-)
SunnyShah
2

Dimungkinkan juga untuk melacak kemajuan pembacaan file lokal menggunakan pvperintah dan menyalurkan konten file ke hdfs dfsstdin:

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

Alexander Rodin
sumber
pvadalah alat IMO undervalued. Apakah pekerjaan di sini sempurna.
Michael Mior
1

Tampaknya tidak ada opsi verbose untuk semua perintah salin (copyFromLocal, copyToLocal, dapatkan, masukkan). Taruhan terbaik Anda mungkin untuk melihat ukuran file di tujuan itu pada HDFS untuk mengukur kemajuannya.

Travis Campbell
sumber
1

Anda dapat menggunakan "nohup &" untuk menjalankan penyalinan sebagai proses latar belakang. nohup akan melakukan proses untuk mengeksekusi bahkan setelah Anda keluar dari server. Kapan pun Anda butuhkan, Anda dapat memeriksa proses menggunakan "hadoop fs -l.

Anan
sumber