2015-10-13 140 views
0

我對谷歌搜索機架拓撲發現這個問題...可能是它的Hadoop認證問題:機架拓撲

你的集羣有從屬節點在三個不同的機架,你寫了一個機架拓撲識別腳本每臺機器位於機架1,機架2或機架3中。羣集外部的客戶機將一個小塊(單塊)文件寫入HDFS。塊的第一個副本被寫入機架2上的節點。如何確定其他兩個副本的塊放置?

某些站點的答案是兩者都將寫入rack1上的節點,或者兩者都將寫入rack3上的節點。

爲什麼不在機架2本身和機架1或機架3上的剩餘塊寫入下一個塊?

回答

0

如果客戶端位於機架之外,則它寫入的第一個複製被視爲本地節點。

從文檔,Hadoop的放置在3個不同的數據節點的複製品:

本地數據節點:數據節點,其中所述客戶端發起的寫(對於例如使用Hadoop FS -cp命令)。第一個複製品放在這裏。如果客戶端正在從集羣外部寫入數據,則隨機選擇此節點。它是寫入第一個副本的節點。

機架外數據節點:數據節點出現在另一個機架上。第二個副本放在這裏。

機架上數據節點:與第一個數據節點實際位於同一機架上的數據節點。第三個副本放在這裏

因此,就你的情況而言,由於第一副本是寫入機架2,它將是本地數據節點。機架1 /機架3 [機架外數據節點]中的第二個副本。然後在機架2 [機架上數據節點]上重新打開第三個副本。