HDFS之NameNode


NameNode&Secondary NameNode工作機制

1)第一階段:namenode啟動

1)第一次啟動namenode格式化后創建fsimage和edits文件。如果不是第一次啟動,直接加載編輯日志和鏡像文件到內存。

2客戶端對元數據進行增刪改的請求

3namenode記錄操作日志,更新滾動日志

4namenode在內存中對數據進行增刪改查

2)第二階段:Secondary NameNode工作

1Secondary NameNode詢問namenode是否需要checkpoint直接帶回namenode是否檢查結果。

2Secondary NameNode請求執行checkpoint。

3namenode滾動正在寫的edits日志

4)將滾動前的編輯日志和鏡像文件拷貝到Secondary NameNode

5Secondary NameNode加載編輯日志和鏡像文件到內存,並合並。

6生成新的鏡像文件fsimage.chkpoint

7拷貝fsimage.chkpoint到namenode

8namenode將fsimage.chkpoint重新命名成fsimage

3)web端訪問SecondaryNameNode

1)啟動集群

2)瀏覽器中輸入:http://hadoop102:50090/status.html

3)查看SecondaryNameNode信息

4chkpoint檢查時間參數設置

1)通常情況下,SecondaryNameNode每隔一小時執行一次

[hdfs-default.xml]

<property>

  <name>dfs.namenode.checkpoint.period</name>

  <value>3600</value>

</property>

2)一分鍾檢查一次操作次數,當操作次數達到1百萬時,SecondaryNameNode執行一次。

<property>

  <name>dfs.namenode.checkpoint.txns</name>

  <value>1000000</value>

<description>操作動作次數</description>

</property>

 

<property>

  <name>dfs.namenode.checkpoint.check.period</name>

  <value>60</value>

<description> 1分鍾檢查一次操作次數</description>

</property>

 

 

鏡像文件和編輯日志文件

 

1概念

namenode被格式化之后,將在/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current目錄中產生如下文件

edits_0000000000000000000

fsimage_0000000000000000000.md5

seen_txid

VERSION

1Fsimage文件:HDFS文件系統元數據的一個永久性的檢查點,其中包含HDFS文件系統的所有目錄和文件idnode的序列化信息。 

2Edits文件:存放HDFS文件系統的所有更新操作的路徑,文件系統客戶端執行的所有寫操作首先會被記錄到edits文件中。 

3seen_txid文件保存的是一個數字,就是最后一個edits_的數字

4每次Namenode啟動的時候都會將fsimage文件讀入內存,並從00001開始到seen_txid中記錄的數字依次執行每個edits里面的更新操作,保證內存中的元數據信息是最新的、同步的,可以看成Namenode啟動的時候就將fsimageedits文件進行了合並

2oiv查看fsimage文件

1查看oiv和oev命令

[atguigu@hadoop102 current]$ hdfs

oiv                  apply the offline fsimage viewer to an fsimage

oev                  apply the offline edits viewer to an edits file

2)基本語法

hdfs oiv -p 文件類型 -i鏡像文件 -o 轉換后文件輸出路徑

3)案例實操

[atguigu@hadoop102 current]$ pwd

/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current

 

[atguigu@hadoop102 current]$ hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-2.7.2/fsimage.xml

 

[atguigu@hadoop102 current]$ cat /opt/module/hadoop-2.7.2/fsimage.xml

將顯示xml文件內容拷貝到eclipse中創建的xml文件中,並格式化

3)oev查看edits文件

(1)基本語法

hdfs oev -p 文件類型 -i編輯日志 -o 轉換后文件輸出路徑

(2)案例實操

[atguigu@hadoop102 current]$ hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml

[atguigu@hadoop102 current]$ cat /opt/module/hadoop-2.7.2/edits.xml

將顯示xml文件內容拷貝到eclipse中創建的xml文件中,並格式化

SecondaryNameNode目錄結構

 

Secondary NameNode用來監控HDFS狀態的輔助后台程序,每隔一段時間獲取HDFS元數據的快照。

 

在/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/current這個目錄中查看SecondaryNameNode目錄結構。

 

edits_0000000000000000001-0000000000000000002

fsimage_0000000000000000002

fsimage_0000000000000000002.md5

VERSION

 

SecondaryNameNode的namesecondary/current目錄和主namenodecurrent目錄的布局相同。

 

好處:在主namenode發生故障時(假設沒有及時備份數據),可以SecondaryNameNode恢復數據

 

方法一:將SecondaryNameNode中數據拷貝到namenode存儲數據的目錄;

 

方法二:使用-importCheckpoint選項啟動namenode守護進程,從而將SecondaryNameNode用作新的主namenode。

集群安全模式操作

(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式狀態

2bin/hdfs dfsadmin -safemode enter   (功能描述:進入安全模式狀態

3bin/hdfs dfsadmin -safemode leave (功能描述:離開安全模式狀態

4bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式狀態

 


免責聲明!

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



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