Hadoop NameNode 元數據以及查看元數據的方式


HDFS中NameNode工作機制
1.NameNode的主要功能
(1)負責客戶端請求的響應;

(2)負責元數據的管理。

2.元數據管理
namenode對數據管理采用了三種存儲形式:

(1)內存元數據;

(2)磁盤元數據鏡像文件;

(3)數據操作日志文件(可以通過日志運算出元數據)。

2.1元數據的存儲機制
(1)內存中有一份完整的元數據(meta data);

(2)磁盤中有一個元數據鏡像文件(fsimage),fsimage是HDFS文件系統存於硬盤中的元數據檢查點,里面記錄了自最后一次檢查點之前HDFS文件系統中所有目錄和文件的序列化信息;

(3)用於銜接內存meta data和持久化元數據鏡像fsimage之間的操作日志(edits文件);edits保存了自最后一次檢查點之后所有針對HDFS文件系統的操作,比如:增加文件、重命名文件、刪除目錄等等。

這兩種文件存放在${dfs.namenode.name.dir}/current/目錄下,文件名以edits_和fsimage_命名,該目錄為NameNode上的本地目錄。為了保證這兩種元數據文件的高可用性,一般的做法,將dfs.namenode.name.dir設置成以逗號分隔的多個目錄,這多個目錄至少不要在一塊磁盤上,最好放在不同的機器上。

2.2手動查看元數據
由於這fsimage和edits是經過序列化的,非文本的,因此無法直接查看,Hadoop2.X中,hdfs提供了查看這兩種文件的工具。

(1)命令hdfs oiv用於將fsimage文件轉換成其他格式的,如文本文件、XML文件。

    該命令需要以下參數:

    必須參數:-i 輸入fsimage文件,-o 輸出文件路徑,如果該路徑已存在,則覆蓋.

    可選參數:-p 將fsimage轉換成哪種格式,有Ls/XML/FileDistribution,默認為Ls。

                    -h 顯示幫助信息。

(2)命令hdfs oev用於查看edits文件


  該命令需要以下參數:

    必須參數:-i 輸入edits文件,如果是xml后綴,表示XML格式,其他表示二進制。

    可選參數:-p 將edits轉換成哪種格式,有Ls/XML/FileDistribution,默認為Ls。

                    -h 顯示幫助信息。

                    -f 重置輸入edits文件中的transaction IDs。

                    -r 使用recovery模式,跳過edits中的錯誤記錄。

                    -v 打印處理時的輸出。

2.3 元數據的checkpoint
每隔一段時間,會由secondary namenode將namenode上積累的所有edits和一個最新的fsimage下載到本地,並加載到內存進行merge,這個過程稱為checkpoint。


checkpoint操作的觸發條件配置參數,在hdfs-site.xml文件配置

dfs.namenode.checkpoint.check.period=60  #檢查觸發條件是否滿足的頻率,60秒

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary   // 配置從Active namenode 下載的鏡像文件臨時存放的節點。

dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}    //  配置從Active namenode 下載的編輯日志臨時存放的節點。


dfs.namenode.checkpoint.max-retries=3  #最大重試次數

dfs.namenode.checkpoint.period=3600  #兩次checkpoint之間的時間間隔3600秒

dfs.namenode.checkpoint.txns=1000000 #兩次checkpoint之間最大的操作記錄

 

checkpoint的作用
namenode和secondary namenode或者 standby namenode的工作目錄存儲結構完全相同,所以,當namenode故障退出需要重新恢復時,可以從 secondary namenode的工作目錄中將fsimage拷貝到namenode的工作目錄,以恢復namenode的元數據。

 

參考文章

https://blog.csdn.net/qq_34715484/article/details/80166665


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM