中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Hadoop框架中NameNode的工作機制是什么

發布時間:2021-07-21 09:16:03 來源:億速云 閱讀:177 作者:Leah 欄目:大數據

本篇文章為大家展示了Hadoop框架中NameNode的工作機制是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、存儲機制

1、基礎描述

NameNode運行時元數據需要存放在內存中,同時在磁盤中備份元數據的fsImage,當元數據有更新或者添加元數據時,修改內存中的元數據會把操作記錄追加到edits日志文件中,這里不包括查詢操作。如果NameNode節點發生故障,可以通過FsImage和Edits的合并,重新把元數據加載到內存中,此時SecondaryNameNode專門用于fsImage和edits的合并。

2、工作流程

Hadoop框架中NameNode的工作機制是什么

NameNode機制

  • NameNode格式化啟動之后,首次會創建Fsimage和Edits文件;

  • 非首次啟動直接加載FsImage鏡像文件和Edits日志到內存中;

  • 客戶端對元數據執行增刪改操作會記錄到Edits文件;

  • 然后請求的相關操作會修改內存中的元數據;

SecondaryNameNode機制

  • 詢問NameNode是否需要CheckPoint,NameNode返回信息;

  • 如果需要SecondaryNameNode請求執行CheckPoint;

  • NameNode切割現有日志文件,新記錄滾動寫入新Edits文件;

  • 滾動前的編輯日志和鏡像文件拷貝到SecondaryNameNode;

  • SecondaryNameNode加載Edits日志和FsImage鏡像文件到內存合并;

  • 生成新的鏡像文件fsimage.chkpoint后拷貝到NameNode;

  • NameNode將fsimage.chkpoint重新命名成fsimage;

3、CheckPoint設置

通過修改hdfs-default.xml文件的相關配置,設置一些SecondaryNameNode的機制,例如每隔一小時執行一次。

<property>
  <name>dfs.namenode.checkpoint.period</name>
  <value>3600</value>
</property>
<property>
  <name>dfs.namenode.checkpoint.txns</name>
  <value>1000000</value>
<description>文件滿1000000記錄數</description>
</property>
<property>
  <name>dfs.namenode.checkpoint.check.period</name>
  <value>60</value>
<description> 1分鐘檢查一次文件記錄數</description>
</property >

二、文件信息

1、FsImage文件

NameNode內存中元數據序列化備份信息;

生成路徑:基于NameNode節點

cd /opt/hadoop2.7/data/tmp/dfs/name/current/

Hadoop框架中NameNode的工作機制是什么

查看文件

# 基本語法
hdfs oiv -p 轉換文件類型 -i 鏡像文件 -o 轉換后文件輸出路徑

基于語法格式,操作上圖中的文件:

# 轉換文件
hdfs oiv -p XML -i fsimage_0000000000000000019 -o /data/fsimage.xml
# 查看
cat /data/fsimage.xml

這樣就可以看到一些元數據的信息。

2、Edits文件

存放HDFS文件的所有增刪改操作的路徑,會記錄在Edits文件中。

基本語法

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

查看文件

# 轉換文件
hdfs oev -p XML -i edits_0000000000000000020-0000000000000000020 -o /data/edits.xml
# 查看
cat /data/edits.xml

三、故障恢復

1、拷貝SecondaryNameNode數據

首先結束NameNode進程;

刪除NameNode存儲的數據;

[root@hop01 /] rm -rf /opt/hadoop2.7/data/tmp/dfs/name/*

拷貝SecondaryNameNode中數據到NameNode數據存儲目錄下;

# 注意SecondaryNameNode服務配置在hop03上
[root@hop01 /] scp -r root@hop03:/opt/hadoop2.7/data/tmp/dfs/namesecondary/* /opt/hadoop2.7/data/tmp/dfs/name/

重新啟動NameNode進程;

2、基于Checkpoint機制

修改hdfs-site.xml配置,同步到集群相關服務下,重啟HDFS進程;

<property>
  <name>dfs.namenode.checkpoint.period</name>
  <value>120</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/opt/hadoop2.7/data/tmp/dfs/name</value>
</property>

結束NameNode進程;

刪除NameNode存儲的數據;

[root@hop01 /] rm -rf /opt/hadoop2.7/data/tmp/dfs/name/*

由于集群中SecondaryNameNode(在hop03)不和NameNode(在hop01)在一個主機節點上,需要將SecondaryNameNode存儲數據的目錄拷貝到NameNode存儲數據的平級目錄,并刪除in_use.lock文件;

[root@hop01 /]scp -r root@hop03:/opt/hadoop2.7/data/tmp/dfs/namesecondary /opt/hadoop2.7/data/tmp/dfs/
[root@hop01 namesecondary/] rm -rf in_use.lock
[root@hop01 dfs]$ ls
data  name  namesecondary

導入檢查點數據

[root@hop01 hadoop2.7] bin/hdfs namenode -importCheckpoint

重新啟動NameNode

[root@hop01 hadoop2.7] sbin/hadoop-daemon.sh start namenode

四、多個目錄配置

NameNode可以配置多本地目錄,每個目錄存放內容相同,增加運行的可靠性;

1、添加配置

# vim /opt/hadoop2.7/etc/hadoop/hdfs-site.xml
# 添加內容如下
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/name01,file:///${hadoop.tmp.dir}/dfs/name02</value>
</property>

該配置需要同步集群下所有服務;

2、刪除原有數據

集群下所有服務都需要執行該操作;

[root@hop01 hadoop2.7]# rm -rf data/ logs/

格式化NameNode之后重啟集群服務。

五、安全模式

1、基本描述

NameNode剛啟動時,會基于鏡像文件和編輯日志在內存中加載文件系統元數據的映像,然后開始監聽DataNode請求,該過程期間處于一個只讀的安全模式下,客戶端無法上傳文件,在該安全模式下DataNode會發送最新的數據塊列表信息到NameNode,如果滿足最小副本條件,NameNode在指定時間后就會退出安全模式。

2、安全模式

  • 安全模式狀態

/opt/hadoop2.7/bin/hdfs dfsadmin -safemode get
  • 進入安全模式

/opt/hadoop2.7/bin/hdfs dfsadmin -safemode enter
  • 退出安全模式

/opt/hadoop2.7/bin/hdfs dfsadmin -safemode leave
  • 等待安全模式

/opt/hadoop2.7/bin/hdfs dfsadmin -safemode wait

上述內容就是Hadoop框架中NameNode的工作機制是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗洪县| 财经| 莱阳市| 克东县| 神池县| 信丰县| 正定县| 西安市| 绥滨县| 黄大仙区| 泸溪县| 呼伦贝尔市| 桂东县| 板桥市| 集贤县| 永安市| 象州县| 彝良县| 凤翔县| 福泉市| 浦县| 迁安市| 洛隆县| 通榆县| 岳池县| 镇康县| 忻城县| 嘉善县| 溧水县| 大埔区| 南开区| 屏山县| 莲花县| 洛南县| 连江县| 乐都县| 宁津县| 皋兰县| 贡嘎县| 卓尼县| 通化县|