大量小文件不適合存儲於HDFS的原因


1、小文件過多,會過多占用namenode的內存,並浪費block。
- 文件的元數據(包括文件被分成了哪些blocks,每個block存儲在哪些服務器的哪個block塊上),都是存儲在namenode上的。
HDFS的每個文件、目錄、數據塊占用150B,因此300M內存情況下,只能存儲不超過300M/150=2M個文件/目錄/數據塊的元數據
- dataNode會向NameNode發送兩種類型的報告:增量報告和全量報告。
增量報告是當dataNode接收到block或者刪除block時,會向nameNode報告。
全量報告是周期性的,NN處理100萬的block報告需要1s左右,這1s左右NN會被鎖住,其它的請求會被阻塞。

2、文件過小,尋道時間大於數據讀寫時間,這不符合HDFS的設計:
HDFS為了使數據的傳輸速度和硬盤的傳輸速度接近,則設計將尋道時間(Seek)相對最小化,將block的大小設置的比較大,這樣讀寫數據塊的時間將遠大於尋道時間,接近於硬盤的傳輸速度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM