1. 程式人生 > >Hadoop選舉以及副本策略

Hadoop選舉以及副本策略

17.Hadoop選舉以及副本策略

預設是採用投票數大於半數則勝出的邏輯。

 

選舉流程簡述

 

目前有5臺伺服器,每臺伺服器均沒有資料,它們的編號分別是1,2,3,4,5,按編號依次啟動,它們的選擇舉過程如下:

 

伺服器1啟動,給自己投票,然後發投票資訊,由於其它機器還沒有啟動所以它收不到反饋資訊,伺服器1的狀態一直屬於Looking。

 

伺服器2啟動,給自己投票,同時與之前啟動的伺服器1交換結果,由於伺服器2的編號大所以伺服器2勝出,但此時投票數沒有大於半數,所以兩個伺服器的狀態依然是LOOKING。

 

伺服器3啟動,給自己投票,同時與之前啟動的伺服器1,2交換資訊,由於伺服器3的編號最大所以伺服器3勝出,此時投票數正好大於半數,所以伺服器3成為領導者,伺服器1,2成為小弟。

 

伺服器4啟動,給自己投票,同時與之前啟動的伺服器1,2,3交換資訊,儘管伺服器4的編號大,但之前伺服器3已經勝出,所以伺服器4只能成為小弟。

 

伺服器5啟動,後面的邏輯同伺服器4成為小弟。

 

 

HDFS的副本放置策略的基本思想是:

 

第一種:

一般情況下副本系數為3,HDFS的副本放置策略是:

將第一個副本放在本地節點,

將第二個副本放在本地機架上的另一個節點,

而第三個副本放到不同機架上的節點。

 

這種方式減少了機架間的寫流量,從而提高了寫的效能。機架故障的機率遠小於節點故障。這種方式並不影響資料可靠性和可用性的限制,並且它確實減少了讀操作的網路聚合頻寬,因為檔案塊僅存在兩個不同的機架,而不是三個。檔案的副本不是均勻的分佈在機架當中,1/3的副本在同一個節點上,1/3副本在同一個機架上,另外1/3個副本均勻地分佈在其他機架上。

 

第二種副本放置策略:

第一副本:放置在上傳檔案的DataNode上;如果是叢集外提交,則隨機挑選一臺磁碟不太慢,CPU不太忙的節點上;

第二副本:放置在於第一個副本不同的機架節點上;

第三副本:與第二個副本相同機架的不同節點上;

如果還有更多的副本,則隨機放在節點中。

下圖為三副本配置示意圖