hadoop2.xHA下DFSClient初始化流程是什么

這篇文章主要講解了“hadoop2.x  HA下DFSClient初始化流程是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“hadoop2.x  HA下DFSClient初始化流程是什么”吧!

通遼網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),通遼網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為通遼近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的通遼做網(wǎng)站的公司定做!

Hadoop2.X NameNode加入了autofiledover機(jī)制,對(duì)于采用了HA的namenode,在HDFS Client訪(fǎng)問(wèn)的時(shí)候,是如何自動(dòng)識(shí)別active的NN,又是在active NN 宕機(jī)的時(shí)候,自動(dòng)切換到新的NN呢。

1.DFSClient的初始化:

hadoop2.x  HA下DFSClient初始化流程是什么

主要涉及的類(lèi)有以下幾個(gè):NameNodeProxies、RetryProxy、RetryInvocationHandler、ConfiguredFailoverProxyProvider。

NameNodeProxies

與NN通訊的對(duì)象的創(chuàng)建提供類(lèi)

RetryProxy

RetryProxy的工廠(chǎng)方法

RetryInvocationHandler

連接異常代理的方法實(shí)現(xiàn)

ConfiguredFailoverProxyProvider

獲取可用NN的類(lèi)

具體代碼實(shí)現(xiàn)相對(duì)比較簡(jiǎn)單,只是邏輯稍微復(fù)雜。


2.在A(yíng)ctive NN宕機(jī)的時(shí)候,如何做到自動(dòng)切換。

可以看到對(duì)于連接異常的處理實(shí)現(xiàn)代碼:

if (action.action == RetryAction.RetryDecision.FAILOVER_AND_RETRY) {//繼續(xù)選擇可用的NN節(jié)點(diǎn)
            // Make sure that concurrent failed method invocations only cause a
            // single actual fail over.
            synchronized (proxyProvider) {
              if (invocationAttemptFailoverCount == proxyProviderFailoverCount) {
                proxyProvider.performFailover(currentProxy.proxy); //該方法會(huì)重新獲取下一個(gè)可用的NN
                proxyProviderFailoverCount++;
              } else {
                LOG.warn("A failover has occurred since the start of this method"
                    + " invocation attempt.");
              }
              currentProxy = proxyProvider.getProxy(); //返回當(dāng)前可用的NN
            }
            invocationFailoverCount++;
          }

performFailover的實(shí)現(xiàn):

@Override
  public synchronized void performFailover(T currentProxy) {
    currentProxyIndex = (currentProxyIndex + 1) % proxies.size();
  }

其實(shí)對(duì)于獲取可用的NN,就是將所有的NN節(jié)點(diǎn)方法到List中,然后從下標(biāo)0開(kāi)始獲取NN,如果有異常Index++,繼續(xù)獲取,直到可用。

感謝各位的閱讀,以上就是“hadoop2.x  HA下DFSClient初始化流程是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)hadoop2.x  HA下DFSClient初始化流程是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

文章標(biāo)題:hadoop2.xHA下DFSClient初始化流程是什么
網(wǎng)頁(yè)地址:http://muchs.cn/article42/ghsphc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、微信小程序、網(wǎng)站策劃、App設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名