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的大小設置的比較大,這樣讀寫數據塊的時間將遠大於尋道時間,接近於硬盤的傳輸速度。
