2013-11-25 36 views
0

我知道如何更改hadoop中的塊大小。在更改塊大小後會發生什麼,namenode如何將數據節點更改爲當前大小。如果我的集羣非常龐大,並且我在以前的datanode的datanode上工作,那麼它仍然不會改變當前的大小。如何由namenode管理它。在更改hadoop中的塊大小後會發生什麼

回答

2

沒有真的發生。實際上,塊大小是單個文件的屬性。您在配置中定義的是默認值。您可以在HDFS中放置或創建文件時指定塊大小。該屬性與文件的元數據一起存儲爲namenode元數據的一部分。如果沒有指定,則使用默認值。

當文件被訪問時,使用該文件的塊大小屬性和文件被相應地處理。這是根據所選的InputFormat完成的。

底線是幾個文件中具有不同塊大小的單個HDFS集羣存在即可。您在配置中定義的是默認值。如果更改它,那麼將用於未指定塊大小的任何新創建操作。希望澄清。

+0

在這種情況下,這是考慮到以前的塊大小爲64MB的大問題,現在配置爲128MB則128MB的文件,以檢索名稱節點只會調用一次consdering塊大小爲128MB,其中該文件必須是兩個數據節點64MB(如果沒有真的發生) 的,我不認爲爲什麼存儲塊的大小開發商可能會給出照片直接對數據和NameNode的店面大小可以接取它倆都拿塊大小將被存儲在NameNode的metadata.in這種情況下,等於空間 –

+1

@Nagendrakumar - 更改默認塊大小將已創建的文件沒有任何影響 - 所以有64MB的BS 128MB的文件將仍然有64MB的2個街區,並將於2級地圖的任務進行處理。 Namenode確實在每個文件的基礎上存儲塊大小,正如Rags所指出的 –

+0

@Nagendrakumar - 正如Chris所提到的那樣。這是默認設置。每個文件都有它自己的塊大小。正如我在我的答案中提到的,文件處理將基於文件的塊大小而不是hdfs站點中提到的默認值。 – Rags

相關問題