2014-11-21 20 views

回答

2

每個文件將會有3 blocks(64mb,64mb,32mb)。塊5*3 = 15

的總所以號這樣分割的號將是15.因此,沒有映射器(如果使用FileInputFormat)= 15。

說明:

HDFS不採取整個塊存儲大小爲<塊的文件 大小。我們可以考慮一個例子,假設HDFS塊大小= 64MB。我們 有一些文件來存儲具有大小= 10MB,那麼名字節點將 信息:·搜索可用塊

·客戶端會寫日期進去

·作家關閉後,它被認爲是該文件被關閉 寫入。即創建文件的大小爲10MB

·然後該塊中有53MB可用。這將是 釋放並添加到可用空間。

·因此這個文件的塊僅佔10MB(塊調整 會發生)

+1

我可以通過發佈一個指向[官方文檔]的鏈接來改進這個答案(https://wiki.apache.org/hadoop/FAQ#If_a_block_size_of_64MB_is_used_and_a_file_is_written_that_uses_less_than_64MB.2C_will_64MB_of_disk_space_be_consumed。 3F) – 2015-11-18 10:29:50

1

您的文件存儲在hdfs中。

1file =100mb 
block size=64mb 

so 1 file split in 2 block

你有5files

5*2=10blocks. 

1映射每分裂所以

10blocks=10mapper 

請確認,在你的問題標題文件大小爲150MB,但問題是100MB。它將與上面的相同。

+0

你的意思是每100MB的文件將有64MB的一個塊和36 MB的一個?實際上我很困惑,它會追加其他文件數據在第一個文件,其中包含36 MB數據的同一個塊 – 2014-11-21 13:27:26

+0

它不會追加,將創建新的block.see這個博客 - http://blog.cloudera.com/blog/2009/02/the-small-files-problem/ – 2014-11-21 13:33:23

相關問題