2014-03-07 23 views
1

我設置一個HDFS集羣,其具有一個主站(名稱節點)和兩個從站(數據節點)如果我在只有兩個datanode的集羣中停用datanode之一,該怎麼辦?

和dfs.replication被設定爲「2」

所以每塊將被在兩個複製奴隸和奴隸中的文件都是一樣的。

我的問題是,如果我想退役兩個奴隸之一,它總是顯示「退役進行中」,但並沒有被複制的文件(使用SAR到箴言報網絡)

所以我如果集羣只有兩個datanode,並且複製設置爲「2」,則不能停用任何datanode,因爲如果我停用任何節點,則只剩下一個節點,因此該文件不能複製2.

你是否這麼認爲?

+1

你的實驗顯示了什麼?我們有一個複製計數爲2的數據節點,並將下列屬性「dfs.client.block.write.replace-datanode-on-failure.enable」設置爲「false」,以避免節點故障時作業失敗。 – Vishal

回答

0

我認爲集羣中的複製因子爲2,如果您退役了一個數據節點,那麼hadoop將識別爲一個數據節點的崩潰,並將繼續與數據節點一起工作。但是,如果將來將節點放回集羣,hadoop將開始將文件複製到該節點。

因此,您可以在集羣中只有一個節點時擁有複製因子2,它不會妨礙hadoop的工作。

+0

我認爲提交作業後,如果我退役了一個節點,那麼它會工作,因爲你在說。但是在完成這些工作之後,如果提交了新工作,那麼在提交時可能會出現錯誤,說「只有一個datanode,複製因子是2」(有點像這樣)...?糾正我,如果我錯了... –

相關問題