總算知道HDFS文件塊為什麼是128M了

HDFS中對大文件存儲在物理上是分塊存儲。就是把一個大文件切分成一塊一塊的文件,查找文件的時候,通過文件塊的起始地址,找到這個文件。

HDFS中文件塊的大小為128M。那麼為什麼要設置成128M而不是別的大小呢?

總算知道HDFS文件塊為什麼是128M了

原因:

  1. 讀取一個文件有兩個過程,尋址過程(尋找文件的物理地址)和文件傳輸過程。
  2. 根據研究表明,尋址時間為傳輸時間的1%最佳
  3. 而hdfs的尋址平均時間為10ms,所以傳輸時間最佳=10ms/1%=1000ms=1s
  4. 又因為目前機械硬盤的傳輸速率普遍為100MB/s,所以文件塊的大小=100MB/s*1s=100MB
  5. 又因為文件塊的大小必須為8的倍數,所以取100MB的近似值128MB

思考:如果文件塊設置過大,會怎樣?

如果文件塊太大,那麼文件的傳輸時間就會變長,那麼程序在處理這塊數據時,就會非常慢。

思考:如果文件塊設置過小,會怎樣?

如果文件塊太小,那麼尋址次數就會增多,對於一個大的文件,程序尋址時間佔的比重就太大,過多的尋找地址。

總結:HDFS的大小設置主要取決於磁盤的傳輸速率。(如果使用固態硬盤,文件塊的大小完全可以設置為256MB)

結尾:如果有什麼疑問,可以在下方評論,我會一一作答


分享到:


相關文章: