hdfs安全模式退出_浅谈HDFS(二)之NameNode与SecondaryNameNode
生活随笔
收集整理的這篇文章主要介紹了
hdfs安全模式退出_浅谈HDFS(二)之NameNode与SecondaryNameNode
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
NN與2NN工作機(jī)制
思考:NameNode中的元數(shù)據(jù)是存儲(chǔ)在哪里的?- 假設(shè)存儲(chǔ)在NameNode節(jié)點(diǎn)的硬盤中,因?yàn)榻?jīng)常需要隨機(jī)訪問和響應(yīng)客戶請(qǐng)求,必然效率太低,所以是存儲(chǔ)在內(nèi)存中的
- 但是,如果存儲(chǔ)在內(nèi)存中,一旦斷電,元數(shù)據(jù)丟失,整個(gè)集群便無法工作,因此會(huì)在硬盤中產(chǎn)生備份元數(shù)據(jù)的Fsimage
- 但是這樣又會(huì)有新的問題出現(xiàn),當(dāng)內(nèi)存中的元數(shù)據(jù)更新時(shí),需要同時(shí)更新Fsimage,否則會(huì)發(fā)生一致性的問題;
- 但要更新的話,又會(huì)導(dǎo)致效率過低
- 因此,又引入了Edits文件,用來記錄客戶端更新元數(shù)據(jù)的每一步操作(只進(jìn)行追加操作,效率很高),每當(dāng)元數(shù)據(jù)有更新時(shí),就把更新的操作記錄到Edits中,Edits也存放在硬盤中
- 這樣,一旦NameNode節(jié)點(diǎn)斷電,可以通過Fsimage和Edits合并,生成最新的元數(shù)據(jù)
- 如果長(zhǎng)時(shí)間一直添加操作數(shù)據(jù)到Edits,會(huì)導(dǎo)致文件數(shù)據(jù)過大,效率降低,而一旦斷電會(huì)造成恢復(fù)時(shí)間過長(zhǎng),因此需要對(duì)Fsimage與Edits定期合并
- 而如果這些操作都交給NameNode節(jié)點(diǎn)完成,則又會(huì)造成效率降低
- 因此引入了一個(gè)輔助NameNode的新的節(jié)點(diǎn)SecondaryNameNode,專門用于Fsimage和Edits的合并
Fsimage與Edits解析
- fsimage:HDFS文件系統(tǒng)元數(shù)據(jù)的一個(gè)永久性的檢查點(diǎn),其中包含HDFS文件系統(tǒng)的所有目錄和文件inode的序列化信息
- Edits(啟動(dòng)NameNode時(shí)生成):存放HDFS文件系統(tǒng)所有更新操作,文件系統(tǒng)客戶端執(zhí)行的寫操作首先會(huì)被記錄到Edits文件中
- seen_txis:保存的時(shí)一個(gè)數(shù)字,是最新的edits_后的數(shù)字
- 每次NameNode啟動(dòng)的時(shí)候都會(huì)將Fsimage文件讀入內(nèi)存,加載Edits文件里的更新操作,保證內(nèi)存中元數(shù)據(jù)的內(nèi)容是最新的,同步的
- 基本語法:hdfs oiv -p 文件類型 -i 鏡像文件 -o 轉(zhuǎn)換后文件輸出路徑
- 基本語法:hdfs oev -p 文件類型 -i 編輯日志 -o 轉(zhuǎn)換后文件輸出路徑
Checkpoint時(shí)間設(shè)置
默認(rèn)情況下,SecondaryNameNode每隔一個(gè)小時(shí)或者當(dāng)操作次數(shù)超過100萬次時(shí)執(zhí)行一次,但是操作次數(shù)的統(tǒng)計(jì)SecondaryNameNode自己做不到,需要借助NameNode,所以還有一個(gè)參數(shù)設(shè)置是namenode每隔一分鐘檢查一次操作次數(shù),當(dāng)操作次數(shù)達(dá)到100萬時(shí)SecondaryNameNode開始執(zhí)行Checkpoint,三個(gè)參數(shù)的設(shè)置都在hdfs_site.xml配置文件中,配置如下:
# SecondaryNameNode每隔一個(gè)小時(shí)執(zhí)行一次 <property><name>dfs.namenode.checkpoint.period</name><value>3600</value> </property># SecondaryNameNode當(dāng)操作次數(shù)超過100萬次時(shí)執(zhí)行一次 <property><name>dfs.namenode.checkpoint.txns</name><value>1000000</value> <description>操作動(dòng)作次數(shù)</description> </property># NameNode一分鐘檢查一次操作次數(shù) <property><name>dfs.namenode.checkpoint.check.period</name><value>60</value> <description> 1分鐘檢查一次操作次數(shù)</description> </property >NameNode故障處理
NameNode故障后有兩種處理方式:
NameNode故障處理方式一:直接將SecondaryNameNode目錄下的數(shù)據(jù)直接拷貝到NameNode目錄下,然后重新啟動(dòng)NameNodeNameNode故障處理方式二:使用-importCheckpoint選項(xiàng)啟動(dòng)NameNode守護(hù)進(jìn)程,從而將SecondaryNameNode目錄下的數(shù)據(jù)直接拷貝到NameNode目錄下
- 首先需要在hdfs_site.xml文件中添加如下配置
- 然后,如果SecondaryNameNode和NameNode不在一個(gè)主機(jī)節(jié)點(diǎn)上,需要將SecondaryNameNode存儲(chǔ)數(shù)據(jù)的目錄拷貝到NameNode存儲(chǔ)數(shù)據(jù)的平級(jí)目錄,并刪除in_use.lock文件
- 最后導(dǎo)入檢查點(diǎn)數(shù)據(jù)(等待一會(huì)兒ctrl + c結(jié)束掉)
- 注意:執(zhí)行完該命令后,觀察namenode已經(jīng)啟動(dòng)(臨時(shí)啟動(dòng)),而且每2分鐘檢查一次,如果確定已經(jīng)恢復(fù)了數(shù)據(jù),我們ctrl+c停止,然后自己手動(dòng)起namenode
- ctrl+c之后,重啟namenode即可恢復(fù)數(shù)據(jù),但是并不能完全恢復(fù),可能會(huì)將最新的Edits文件中的操作丟失
集群安全模式
什么是安全模式
基本語法
- 集群處于安全模式時(shí),不能執(zhí)行任何重要操作(寫操作)。
- 集群?jiǎn)?dòng)完成后,自動(dòng)退出安全模式
NameNode多目錄配置
- NameNode的本地目錄可以配置成多個(gè),且每個(gè)目錄存放內(nèi)容相同,增加了可靠性,提高高可用性
- 具體需要在hdfs_site.xml中加入如下配置:
總結(jié)
以上是生活随笔為你收集整理的hdfs安全模式退出_浅谈HDFS(二)之NameNode与SecondaryNameNode的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兔子生崽问题编程_贵阳在哪里可以学到好的
- 下一篇: 定位到某个单词_【侃侃单词】词根词缀记单