日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

HDFS的HA

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDFS的HA 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么要用集群

在企業(yè)中主要使用集群

在學(xué)習(xí)的過程中使用偽分布式即可,就是單點(diǎn)

HDFS中的

NN

SNN

DN

YARN 的

RM 老大

NM

每個(gè)組件只有一個(gè)即可

如果nn掛了就不能再繼續(xù)對(duì)外提供服務(wù),例如客戶端請(qǐng)求的讀寫,put get那些。

為了解決這個(gè)問題,企業(yè)一般都會(huì)準(zhǔn)備兩臺(tái)nn,對(duì)外提供服務(wù)的只有一臺(tái),處于active狀態(tài),另一臺(tái)是standby狀態(tài),進(jìn)行實(shí)時(shí)備份隨時(shí)準(zhǔn)備從standby狀態(tài)切換到active狀態(tài)

同時(shí),擁有兩臺(tái)nn基本上就不需要snn了,因?yàn)閚n會(huì)進(jìn)行實(shí)時(shí)備份,而snn只是進(jìn)行合并備份的工作,一個(gè)小時(shí)checkpoint。如果用snn只能恢復(fù)checkpoint點(diǎn)的數(shù)據(jù),如果中途掛掉,那中間那半小時(shí)的數(shù)據(jù)就會(huì)丟失。

主從架構(gòu) master-slave
比如hdfs讀寫請(qǐng)求都是先NN節(jié)點(diǎn);
但是:hbase 讀寫請(qǐng)求不是經(jīng)過老大master

?

命名空間:當(dāng)我們有兩臺(tái)nn的時(shí)候分別為nn1和nn2,我們執(zhí)行HDFS命令和我們只有一臺(tái)nn進(jìn)程有什么區(qū)別呢?

hdfs dfs -ls /? 這是我們?cè)趥畏植祭飯?zhí)行的HDFS命令。當(dāng)我們執(zhí)行這個(gè)命令的時(shí)候,就會(huì)去core.site.xml和hdfs.site.xml兩個(gè)配置文件里去尋找配置的信息,以便于找到服務(wù)器執(zhí)行相應(yīng)的命令。

但是當(dāng)我們有兩個(gè)nn進(jìn)程的時(shí)候上邊的那個(gè)命令就不能這樣執(zhí)行了,要加上你要執(zhí)行命令的服務(wù)器名稱等等

hdfs dfs -ls hdfs://ip:9000 / 這兩個(gè)nn分別對(duì)應(yīng)著兩個(gè)ip,這里的ip是誰(shuí)就通過哪個(gè)執(zhí)行命令。但是在shell腳本或者代碼之中,如果active的nn掛了,我們?cè)賵?zhí)行命令的時(shí)候不可能再改代碼改腳本,所以這里引出一個(gè)命名空間的概念,我們的腳本或者代碼先連接命名空間,命名空間再去嘗試連接active的nn,這個(gè)過程我們是無(wú)感知的。

命名空間的工作流程,命名空間從客戶端接到命令以后,會(huì)先嘗試連接其中一臺(tái)nn,這里我們就假設(shè)先連接nn2,發(fā)現(xiàn)nn2是standby狀態(tài),然后再去嘗試連接nn1,發(fā)現(xiàn)是active狀態(tài),這時(shí)候nn1會(huì)接受請(qǐng)求并執(zhí)行命令。

?

?

?

- 流程
- 1、客戶端根據(jù)命名空間發(fā)起請(qǐng)求
- 2、命名空間按照配置順序?qū)ふ襛ctive節(jié)點(diǎn)
- 3、NN1記錄editlog并寫入JN集群
- 4、NN2節(jié)點(diǎn)實(shí)時(shí)讀取JN集群的數(shù)據(jù),并進(jìn)行重演

- 重點(diǎn)
- 1、DN節(jié)點(diǎn)會(huì)向所有的NN節(jié)點(diǎn)匯報(bào)心跳狀況
- 2、ZKFC是單獨(dú)的進(jìn)程

?

HDFA的 HA的架構(gòu)部署

環(huán)境準(zhǔn)備? 3臺(tái)機(jī)器

hadoop001:ZK NN ZKFC JN DN

hadoop002:ZK NN ZKFC JN DN

hadoop003:ZK JN DN

每個(gè)組件的作用

?NN:fsimage editlog(讀寫請(qǐng)求記錄)

ZK(2n+1 奇數(shù)臺(tái)):負(fù)責(zé)選舉,決定active和standby在哪臺(tái)節(jié)點(diǎn)

ZKFC(zookeeperFailOverControl):節(jié)點(diǎn)真正掛掉,負(fù)責(zé)將standy狀態(tài)的節(jié)點(diǎn)切換到active狀態(tài)

JN:同步editlog的進(jìn)程

ZK是一個(gè)單獨(dú)的進(jìn)程集群

以下是企業(yè)ZK集群部署臺(tái)數(shù)參考

20臺(tái)節(jié)點(diǎn): 5臺(tái)
20~100臺(tái)節(jié)點(diǎn): 7/9/11臺(tái)
>100臺(tái)節(jié)點(diǎn): 11臺(tái)
但是: 不是說(shuō)zk節(jié)點(diǎn)越多越好,因?yàn)閦k節(jié)點(diǎn)越多做出選舉的決策的時(shí)間就越長(zhǎng)。

幾百臺(tái)節(jié)點(diǎn), zk部署的機(jī)器就它一個(gè)進(jìn)程,這是為了提高選舉效率

?

HA出現(xiàn)的主要原因就是為了解決單點(diǎn)問題,監(jiān)控狀態(tài)自動(dòng)備援

通過jn共享狀態(tài)

ZKFC

通過ZKFC切換nn的syandby狀態(tài)到active狀態(tài)

ZKFC是一個(gè)單獨(dú)的進(jìn)程

向ZK集群定期發(fā)送心跳,使得自己可以被選舉

監(jiān)控NN的健康狀態(tài)

當(dāng)自己被選為active的時(shí)候,ZKFC通過RPC協(xié)議調(diào)用使standby的節(jié)點(diǎn)切換為active狀態(tài),對(duì)外提供服務(wù)。這個(gè)過程是無(wú)感知的。

DN

同時(shí)向NN1和NN2發(fā)送心跳和塊報(bào)告

active的NN:

操作記錄寫到自己的editlog

同時(shí)把editlog里的內(nèi)容寫到JN集群里

接收DN的心跳和塊報(bào)告

standby的NN

接收J(rèn)N的集群日志

顯示讀取執(zhí)行l(wèi)og操作(重演),使得自己的元數(shù)據(jù)和active的nn的數(shù)據(jù)保持一致

也要接收DN的心跳和塊報(bào)告。

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/xuziyu/p/10658323.html

總結(jié)

以上是生活随笔為你收集整理的HDFS的HA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。