Sebuah metode cepat untuk memeriksa file pada HDFS adalah dengan menggunakan ekor:
~$ hadoop fs -tail /path/to/file
Ini menampilkan terakhir kilobyte data dalam file, yang sangat membantu. Namun, berlawanan dengan perintah kepala
tidak muncul untuk menjadi bagian dari shell command koleksi. Saya menemukan ini sangat mengejutkan.
Hipotesis saya adalah bahwa sejak HDFS ini dibangun untuk sangat cepat streaming membaca pada file yang sangat besar, ada beberapa akses yang berorientasi pada masalah yang mempengaruhi kepala
. Hal ini membuat saya ragu-ragu untuk melakukan hal-hal untuk mengakses kepala. Apakah ada yang punya jawaban?
Aku akan mengatakan itu's dengan efisiensi - kepala dapat dengan mudah ditiru oleh pipa output dari hadoop fs -kucing melalui linux kepala komando.
hadoop fs -cat /path/to/file | head
Ini lebih efisien karena kepala akan menutup mendasari aliran setelah nomor yang diinginkan dari garis-garis yang telah output
Dengan menggunakan ekornya dengan cara ini akan jauh kurang efisien - anda'd harus streaming ke seluruh file (semua HDFS blok) untuk menemukan akhir x jumlah baris.
hadoop fs -cat /path/to/file | tail
Yang hadoop fs -ekor perintah seperti yang anda perhatikan bekerja pada terakhir kilobita - hadoop efisien dapat menemukan blok terakhir dan melompat ke posisi akhir kilobyte, maka aliran output. Pipa melalui ekor bisa't dengan mudah melakukan hal ini.