1. 程式人生 > >Hadoop Core_HDFS總結(三)——思考問題

Hadoop Core_HDFS總結(三)——思考問題

一、HDFS 為何要講檔案分成 block 塊儲存?

 減少底層作業系統的 IO 讀取時的定址時間方便更高效的流式讀取,提高吞吐量

二、HDFS block 塊的預設大小時多少?

 dfs.blocksize 為 Hadoop 定義 block 塊大小的設定引數,在 hdfs-site.xml 中版本不一樣,預設值不同。Hadoop2.2.x 及以後版本均為 128M

三、HDFS block 塊的大小是否可以更改?

 可以修改。引數修改對以前的檔案不起作用,對以後的檔案起作用。也可以針對上傳檔案臨時修改,指定-D dfs.blocksize即可。

四、一個 block 塊檔案是否可以儲存多個檔案資料?

 一個 block 塊檔案不會跨檔案儲存。一個 block 塊檔案最多隻會儲存一個檔案對應的資料

五、如果一個檔案的大小,小於一個 blocksize,那麼它實際佔用多大空間?

實際檔案多大則佔多大空間,但是佔了一個 block 塊的元資料空間大小(在namenode)

實際檔案多大則佔多大空間,但是佔了一個 block 塊的元資料空間大小(在namenode),GB、TB甚至PB等。

六、HDFS block 越大越好?還是越小越好?

越大則分塊越少,則 NameNode 壓力將減小,但並行的 IO 和處理能力降低

越小則分塊越多,則 NameNode 處理壓力越大,但因為定址時間太久,不利於提高吞吐量

適中即可,一般採用官方的 128M 即可