您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hadoop的Secondary NameNode是什么”,在日常操作中,相信很多人在Hadoop的Secondary NameNode是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Hadoop的Secondary NameNode是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
Secondary NameNode從它的名字上來看,給人的感覺是NameNode的備份。但實(shí)際上不是這樣。那到底Secondary NameNode在HDFS中扮演的是什么角色呢?
從名字上來看Secondary NameNode與NameNode,都包含著NameNode,這兩者是不是存在某種關(guān)系呢,先來看下NameNode是干什么的。
NameNode主要是用來保存HDFS的元數(shù)據(jù)信息,比如命名空間信息,快信息等。當(dāng)它運(yùn)行的時(shí)候,這些信息會(huì)保存在內(nèi)存中。同時(shí)這部分信息也會(huì)持久化到磁盤上。
fsimage:是在NameNode啟動(dòng)時(shí)對(duì)整個(gè)文件系統(tǒng)的快照
edits:在NameNode啟動(dòng)后,對(duì)文件系統(tǒng)改動(dòng)序列
只有在NameNode重啟時(shí),edits才會(huì)合并到fsimage文件中,從而得到一個(gè)文件系統(tǒng)的最新快照。但是在產(chǎn)品集群中NameNode是很少重啟的,這也意味著當(dāng)NameNode運(yùn)行了很長(zhǎng)時(shí)間后,edits文件會(huì)變得很大。就會(huì)面臨如下問題:
edits文件會(huì)變的很大,怎么去管理這個(gè)文件是一個(gè)挑戰(zhàn)
NameNode的重啟會(huì)花費(fèi)很長(zhǎng)時(shí)間,因?yàn)橛泻芏鄀dits中改動(dòng)要合并到fsimage文件上。
如果NameNode掛掉了,就會(huì)丟失了很多改動(dòng),因?yàn)榇藭r(shí)的fsimage文件非常舊。
這個(gè)時(shí)候Secondary NameNode就出場(chǎng)了,Secondary NameNode可以來幫助解決上面問題,它的職責(zé)就是用來合并NameNode的edits到fsimage中。
HDFS文件系統(tǒng)的寫操作不是直接被修改到fsimage中,而是edits中,Secondary NameNode節(jié)點(diǎn)負(fù)責(zé)將兩者進(jìn)行整合。
checkpoint過程如下:
Secondary Namenode請(qǐng)求Namenode停止使用edits文件,暫時(shí)將新的寫操作記錄到一個(gè)新文件中,如edits.new。
Secondary Namenode節(jié)點(diǎn)從Namenode節(jié)點(diǎn)獲取fsimage和edits文件(采用HTTP GET)
Secondary Namenode將fsimage文件載入到內(nèi)存,逐一執(zhí)行edits文件中的操作,創(chuàng)建新的fsimage文件
Secondary Namenode將新的fsimage文件發(fā)送回Namenode(使用HTTP POST)
Namenode節(jié)點(diǎn)將從Secondary Namenode節(jié)點(diǎn)接收的fsimage文件替換舊的fsimage文件,用步驟1產(chǎn)生的edits.new文件替換舊的edits文件(即改名)。同時(shí)更新fstime文件來記錄檢查點(diǎn)執(zhí)行的時(shí)間
注:從Hadoop0.21.0開始,輔助Namenode已經(jīng)放棄不用,由checkpoint節(jié)點(diǎn)取而代之,功能不變。新版本同時(shí)引入一種新的Namenode,名為BackupNode。
Secondary NameNode的整個(gè)目的在HDFS中提供一個(gè)Checkpoint Node,它只是NameNode的一個(gè)助手節(jié)點(diǎn)
現(xiàn)在,我們明白Secondary NameNode所做的是在文件系統(tǒng)這設(shè)置一個(gè)Checkpoint來幫助NameNode更好的工作;它不是取代NameNode,也不是NameNode的備份。
Secondary NameNode的檢查點(diǎn)進(jìn)程啟動(dòng),是由兩個(gè)配置參數(shù)控制的:
fs.checkpoint.period,指定連續(xù)兩次檢查點(diǎn)的最大時(shí)間間隔, 默認(rèn)值是1小時(shí)。
fs.checkpoint.size定義了edits日志文件的最大值,一旦超過這個(gè)值會(huì)導(dǎo)致強(qiáng)制執(zhí)行檢查點(diǎn)(即使沒到檢查點(diǎn)的最大時(shí)間間隔)。默認(rèn)值是64MB。
關(guān)于NameNode是什么時(shí)候?qū)⒏膭?dòng)寫到edit logs中的?
這個(gè)操作實(shí)際上是由DataNode的寫操作觸發(fā)的,當(dāng)我們往DataNode寫文件時(shí),DataNode會(huì)跟NameNode通信,告訴NameNode什么文件的第幾個(gè)block放在它那里,NameNode這個(gè)時(shí)候會(huì)將這些元數(shù)據(jù)信息寫到edit logs文件中。
到此,關(guān)于“Hadoop的Secondary NameNode是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。