50個(gè)辦廠好項(xiàng)目運(yùn)城seo
目錄
理論知識(shí)點(diǎn)
角色功能
元數(shù)據(jù)持久化
安全模式
SecondaryNameNode(SNN)
副本放置策略
HDFS寫(xiě)流程
HDFS讀流程
HA高可用
CPA原則
Paxos算法
HA解決方案
HDFS-Fedration解決方案(聯(lián)邦機(jī)制)
理論知識(shí)點(diǎn)
角色功能
元數(shù)據(jù)持久化
另一臺(tái)機(jī)器就是SecondaryNameNode(SNN)
安全模式
不保存位置信息的原因,是因?yàn)楫?dāng)機(jī)器重啟恢復(fù)后,DN會(huì)和NN建立心跳,匯報(bào)塊信息。這個(gè)過(guò)程叫安全模式。?
SecondaryNameNode(SNN)
非HA模式下才有,SNN跟版本沒(méi)有關(guān)系,企業(yè)一般不用SNN,而用高可用HA方式。
副本放置策略
塔式服務(wù)器:豎的,價(jià)格便宜
機(jī)架服務(wù)器:扁的,價(jià)格中等,最上面放一個(gè)交換機(jī),ups(電源,電池防斷電)
刀片服務(wù)器:插入的,價(jià)格較貴
2.x修正為第二個(gè)副本立即出機(jī)架,因?yàn)橛锌赡馨迅北緮?shù)修改為2
HDFS寫(xiě)流程
某個(gè)時(shí)間點(diǎn),傳其中一個(gè)block的時(shí)候狀態(tài)圖
client向NN請(qǐng)求創(chuàng)建文件,這個(gè)時(shí)候NN返回副本放置策略,按距離排序
HDFS讀流程
HA高可用
主從:單點(diǎn)故障、壓力過(guò)大、內(nèi)存受限
2.x匆匆上線HA,只實(shí)現(xiàn)了一主一備,3.0之后一周多備,可以支持5個(gè),官方推薦3個(gè)
一份為二,上面藍(lán)色是故障切換自動(dòng)化,下面是手動(dòng)的HA模式
CPA原則
分區(qū)容忍性:即腦裂,
Paxos算法
帕克索斯算法:Google Chubby的作者M(jìn)ike Burrows說(shuō)過(guò)這個(gè)世界上只有一種一致性算法,那就是Paxos,其它的算法都是殘次品。
主從+過(guò)半
參考:https://www.cnblogs.com/crazymakercircle/p/14341015.html
強(qiáng)一致、弱一致都能做,區(qū)塊鏈中也是基于該算法
ZooKeeper中使用的是Paxos的簡(jiǎn)化版本ZAB,ZK做分布式協(xié)調(diào)
早期用的多,后來(lái)大家都把他剔除了,最多用zk選個(gè)主,做配置的同步,或者唯一性。因?yàn)閦k解決是解決的是事件的觸發(fā),解決決策之間某一種事件的調(diào)用,不適合存東西。?
JournalNodes(Journal雜志、期刊) 跟ZK不是一個(gè)東西,JournalNodes做分布式存儲(chǔ)
JournalNodes是為了解決節(jié)點(diǎn)之間數(shù)據(jù)同步的。
HA解決方案
FalioverController是用來(lái)做健康檢查的。
跟NN在同一個(gè)節(jié)點(diǎn),它們是不同的進(jìn)程,FalioverController會(huì)監(jiān)控NN是否活著。
ZK維護(hù)一個(gè)目錄樹(shù)結(jié)構(gòu),主備FalioverController會(huì)在ZK同時(shí)申請(qǐng)?jiān)赬節(jié)點(diǎn)下?lián)屾i,誰(shuí)搶到誰(shuí)就是active,否則是standby。
當(dāng)FalioverController進(jìn)程監(jiān)控到了Active的NN掛了,然后FalioverController會(huì)把ZK當(dāng)中搶到的鎖刪掉。鎖刪除是一種事件機(jī)制,會(huì)有callback。
ZK Watch監(jiān)控:FC搶鎖時(shí)還在ZK的鎖上注冊(cè)了自己的地址還包括回調(diào)函數(shù),當(dāng)FC刪除鎖時(shí),產(chǎn)生刪除事件,這個(gè)刪除事件就會(huì)觸發(fā)callback,就會(huì)回調(diào)FC里的方法,在fc的進(jìn)程里執(zhí)行,這是FC發(fā)現(xiàn)鎖沒(méi)有了會(huì)重新?lián)屾i。
如果是輪詢(xún)查詢(xún)鎖在不在,會(huì)存在輪詢(xún)間隔,所以會(huì)用事件callback機(jī)制。
NN還活著,FC掛了,與ZK節(jié)點(diǎn)掛了,FC臨時(shí)節(jié)點(diǎn)隨著TCP連接的消失,會(huì)觸發(fā)刪除事件。
FC會(huì)去檢查之前Active的NN是不是真死了,沒(méi)死就把它降級(jí)為standby,再把自己升級(jí)為active。當(dāng)網(wǎng)絡(luò)不通或者什么異常導(dǎo)致無(wú)法判斷對(duì)方是不是真的掛了,此時(shí)不會(huì)把自己升級(jí)為active,這種情況出現(xiàn)的幾率很低。(兩臺(tái)主機(jī)通過(guò)串口相連,這個(gè)連接可以當(dāng)成可靠的)
HA模式下,SNN的角色被Standby替代了,不承擔(dān)服務(wù),滾動(dòng)生成FsImage,并把生成的FsImage推回去,以便宕機(jī)后的快速恢復(fù)。
HDFS-Fedration解決方案(聯(lián)邦機(jī)制)
聯(lián)邦機(jī)制:各個(gè)聯(lián)邦,屬于同一個(gè)國(guó)家,統(tǒng)一一套資源