日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDFS的Secondarynamenode工作机制

發布時間:2024/4/13 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDFS的Secondarynamenode工作机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

HDFS 的元信息和 SecondaryNameNode

當 Hadoop 的集群當中, 只有一個 NameNode 的時候, 所有的元數據信息都保存在了 FsImage 與 Eidts 文件當中, 這兩個文件就記錄了所有的數據的元數據信息, 元數據信息的保存目錄配置在了 hdfs-site.xml 當中

<property><name>dfs.namenode.name.dir</name><value>file:///export/servers/hadoop-3.1.1/datas/namenode/namenodedatas</value> </property> <property><name>dfs.namenode.edits.dir</name><value>file:///export/servers/hadoop-3.1.1/datas/dfs/nn/edits</value> </property>

FsImage 和 Edits 詳解

  • edits

    • edits 存放了客戶端最近一段時間的操作日志
    • 客戶端對 HDFS 進行寫文件時會首先被記錄在 edits 文件中
    • edits 修改時元數據也會更新
    • 每次 HDFS 更新時 edits 先更新后客戶端才會看到最新信息
  • fsimage

    • NameNode 中關于元數據的鏡像, 一般稱為檢查點, fsimage 存放了一份比較完整的元數據信息
    • 因為 fsimage 是 NameNode 的完整的鏡像, 如果每次都加載到內存生成樹狀拓撲結構,這是非常耗內存和CPU, 所以一般開始時對 NameNode 的操作都放在 edits 中
    • fsimage 內容包含了 NameNode 管理下的所有 DataNode 文件及文件 block 及 block 所在的 DataNode 的元數據信息.
    • 隨著 edits 內容增大, 就需要在一定時間點和 fsimage 合并

fsimage 中的文件信息查看

官方查看文檔

使用命令 hdfs oiv

cd /export/servers/hadoop-3.1.1/datas/namenode/namenodedatas hdfs oiv -i fsimage_0000000000000000864 -p XML -o hello.xml

edits 中的文件信息查看

官方查看文檔

使用命令 hdfs oev

cd /export/servers/hadoop-3.1.1/datas/dfs/nn/edits hdfs oev -i edits_0000000000000000865-0000000000000000866 -o myedit.xml -p XML

SecondaryNameNode 如何輔助管理 fsimage 與 edits 文件?

  • SecondaryNameNode 定期合并 fsimage 和 edits, 把 edits 控制在一個范圍內

  • 配置 SecondaryNameNode

    • SecondaryNameNode 在 conf/masters 中指定

    • 在 masters 指定的機器上, 修改 hdfs-site.xml

<property><name>dfs.http.address</name><value>host:50070</value> </property>

修改 core-site.xml, 這一步不做配置保持默認也可以

<!-- 多久記錄一次 HDFS 鏡像, 默認 1小時 --> <property><name>fs.checkpoint.period</name><value>3600</value> </property> <!-- 一次記錄多大, 默認 64M --> <property><name>fs.checkpoint.size</name><value>67108864</value> </property>
  • SecondaryNameNode 通知 NameNode 切換 editlog
  • SecondaryNameNode 從 NameNode 中獲得 fsimage 和 editlog(通過http方式)
  • SecondaryNameNode 將 fsimage 載入內存, 然后開始合并 editlog, 合并之后成為新的 fsimage
  • SecondaryNameNode 將新的 fsimage 發回給 NameNode
  • NameNode 用新的 fsimage 替換舊的 fsimage
  • 特點

    • 完成合并的是 SecondaryNameNode, 會請求 NameNode 停止使用 edits, 暫時將新寫操作放入一個新的文件中 edits.new
    • SecondaryNameNode 從 NameNode 中通過 Http GET 獲得 edits, 因為要和 fsimage 合并, 所以也是通過 Http Get 的方式把 fsimage 加載到內存, 然后逐一執行具體對文件系統的操作, 與 fsimage 合并, 生成新的 fsimage, 然后通過 Http POST 的方式把 fsimage 發送給 NameNode. NameNode 從 SecondaryNameNode 獲得了 fsimage 后會把原有的 fsimage 替換為新的 fsimage, 把 edits.new 變成 edits. 同時會更新 fstime
    • Hadoop 進入安全模式時需要管理員使用 dfsadmin 的 save namespace 來創建新的檢查點
    • SecondaryNameNode 在合并 edits 和 fsimage 時需要消耗的內存和 NameNode 差不多, 所以一般把 NameNode 和 SecondaryNameNode 放在不同的機器上
    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的HDFS的Secondarynamenode工作机制的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。