benstyle 寫:
假設一個Block size 為64MB,請問檔案若小於Block的size,該檔案存在HDFS中的Block內容為何?是否採用填充無意義位元的方式補到64MB?或是一個Block 填塞多個小檔案一直填滿到64MB呢?
還請各位回答,謝謝!
如果您觀察 hadoop.tmp.dir 目錄底下(Ex. /var/lib/hadoop/cache/${user.name})
有跑 datanode 的話,會出現 dfs/data 目錄,
進到 current 目錄,就可以看到很多 block 的檔案。
代碼:
jazz@hadoop101:/var/lib/hadoop/cache/hadoop/dfs/data/current$ pwd
/var/lib/hadoop/cache/hadoop/dfs/data/current
jazz@hadoop101:/var/lib/hadoop/cache/hadoop/dfs/data/current$ ls blk_*
blk_-1058113532576872849 blk_3460529997635893096_429031.meta blk_-6575302874524874076
blk_-1058113532576872849_464221.meta blk_3611050815788039047 blk_-6575302874524874076_471179.meta
blk_1132812415192034288 blk_3611050815788039047_434756.meta blk_6739545081917432979
blk_1132812415192034288_415564.meta blk_-370560545439462242 blk_6739545081917432979_455646.meta
.... 略 ....
jazz@hadoop101:/var/lib/hadoop/cache/hadoop/dfs/data/current$ ls -alh blk_-1058113532576872849
-rw-r--r-- 1 hadoop hadoop 14K 2009-11-23 15:21 blk_-1058113532576872849
從這個現象就可以知道雖然 Block Size 設成 64MB,單一個 block 還是根據檔案的大小決定。