溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop中SecondaryNameNode有什么用

發(fā)布時間:2021-12-09 14:50:49 來源:億速云 閱讀:310 作者:小新 欄目:云計算

這篇文章主要介紹了Hadoop中SecondaryNameNode有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

作用

1. SecondaryNameNode節(jié)點的主要功能是周期性將元數(shù)據(jù)節(jié)點的命名空間鏡像文件和修改日志進行合并,以防日志文件過大。

2.NameNode的鏡像備份,如果NameNode宕機,可以從SecondaryNameNode恢復(fù)數(shù)據(jù),但會存在數(shù)據(jù)丟失的情況(SecondaryNameNode最后一次讀取鏡像和修改日志到宕機中間的數(shù)據(jù)丟失)

工作原理

    NameNode主要用來保存HDFS的元數(shù)據(jù)信息,比如命名空間信息、塊信息等。為了保證效率,Namenode在啟動的時候會將這些信息加載到內(nèi)存中;同時,也會將這些信息持久化到硬盤中,通常會形成以下文件:空間命名鏡像文件(fsimage)和修改日志文件(edits)。下圖為NameNode的文件目錄結(jié)構(gòu):

Hadoop中SecondaryNameNode有什么用

    NameNode在啟動時,會讀取fsimage文件、合并edits文件。但是一般在集群中,namenode很少會重啟,就導(dǎo)致了edits文件會逐漸變大,從而導(dǎo)致edits文件難以管理、重啟變慢、edits文件損壞丟失過多數(shù)據(jù)等各種問題。

                                Hadoop中SecondaryNameNode有什么用

     所以,Hadoop使用SecondaryNameNode來合并fsimage和edits文件,減少NameNode的工作量,提高Hadoop集群的可靠性。

    SecondaryNameNode的工作流程如下:

  • SecondaryNameNode節(jié)點通知NameNode節(jié)點生成新的日志文件,以后的日志都寫到新的日志文件中。

  • SecondaryNameNode節(jié)點用http get從NameNode節(jié)點獲得fsimage文件及舊的日志文件。

  • SecondaryNameNode節(jié)點將fsimage文件加載到內(nèi)存中,并執(zhí)行日志文件中的操作,然后生成新的fsimage文件。

  • SecondaryNameNode節(jié)點將新的fsimage文件用http post傳回NameNode節(jié)點上。

  • NameNode節(jié)點可以將舊的fsimage文件及舊的日志文件,換為新的fsimage文件和新的日志文件(第一步生成的),然后更新fstime文件,寫入此次checkpoint的時間。

  • 這樣NameNode節(jié)點中的fsimage文件保存了最新的checkpoint的元數(shù)據(jù)信息,日志文件也重新開始,不會變的很大了。

             Hadoop中SecondaryNameNode有什么用

Secondary NameNode的檢查點進程啟動,是由兩個配置參數(shù)控制的:

  • fs.checkpoint.period(新版本dfs.namenode.checkpoint.period),指定連續(xù)兩次檢查點的最大時間間隔, 默認(rèn)值是1小時。

  • fs.checkpoint.size(新版本有變化,但是沒找到變成什么了)定義了edits日志文件的最大值,一旦超過這個值會導(dǎo)致強制執(zhí)行檢查點(即使沒到檢查點的最大時間間隔)。默認(rèn)值是64MB。

SecondaryNameNode運行在另一臺非NameNode的 機器上

SecondaryNameNode進程默認(rèn)是運行在NameNode節(jié)點的機器上的,如果這臺機器出錯,宕機,對恢復(fù)HDFS文件系統(tǒng)是很大的災(zāi)難,更好的方式是:將SecondaryNameNode的進程配置在另外一臺機器 上運行。至于為什么要將SNN進程運行在一臺非NameNode的 機器上,這主要出于兩點考慮:

  • 可擴展性: 創(chuàng)建一個新的HDFS的snapshot需要將namenode中l(wèi)oad到內(nèi)存的metadata信息全部拷貝一遍,這樣的操作需要的內(nèi)存就需要 和namenode占用的內(nèi)存一樣,由于分配給namenode進程的內(nèi)存其實是對HDFS文件系統(tǒng)的限制,如果分布式文件系統(tǒng)非常的大,那么namenode那臺機器的內(nèi)存就可能會被namenode進程全部占據(jù)。

  • 容錯性: 當(dāng)snn創(chuàng)建一個checkpoint的時候,它會將checkpoint拷貝成metadata的幾個拷貝。將這個操作運行到另外一臺機器,還可以提供分布式文件系統(tǒng)的容錯性。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Hadoop中SecondaryNameNode有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI