Ref:
Q1:
Hadoop存放的block size為何建議不能太小, 至少64MB或128MB?
Block size如果太小, 容易有一個問題, 當data node重開機 或毀損時, 太多細小檔案, 會增加copy replica的時間, 就好比在linux裡面copy 大量小檔案時, 速度快不起來, 是一樣的道理。
Q2:
Hadoop存放的各個物件檔案, 不建議太小?
因為namenode在記憶體中存儲hdfs中的檔資訊。每個檔案、目錄或區塊(block)需要大約150Byte
如果HDFS 有一百萬個檔案或資料夾, 則共需要150 Byte * 1000000 / 1024/ 1024 = 143MB的記憶體空間, 建議粗估300MB(Name node : heap size)
而真正的速度影響是, 在執行map-reduce工作時, 需要不斷的去reference參照各個檔案, 造成Java MR process的時候, Name node與data node交換的檔案資訊變多, 大大的拖慢了parsing的速度。
另外一個考量,
存放一百萬個檔案,每個都是 64 MB,那空間總共為 64 TB。如果平均每個是 64 KB,那只能儲存 64 GB。
沒有留言:
張貼留言