HDFS架構

當客戶機要讀取數據的時候,要從NameNode中讀取Metadata元數據信息。元數據信息保存在NameNode內存中和磁盤中。因為內存中保存是為了查詢速度,磁盤中保存是為了安全,因為內存中存儲的不安全。

元數據存儲細節

  • 元數據
    類似于倉庫中的賬本,描述著物品的描述信息。


    image.png
  • 如何判斷該文件是否損壞
    一個文件的每一塊擁有一個值,校驗和。具體過程是:從datanode中讀取一個塊信息,可以得到一個校驗值。這個值和元數據中保存的值比較,如果不同就判斷為損壞。

NameNode

  • 整個文件系統的管理節點。
    維護著整個文件系統餓文件目錄樹。
    文件/目錄的元信息和每個文件對應的數據塊列表。
    接收用戶的操作請求
  • NameNode中主要包括一下文件
    • fsimage:元數據鏡像文件。就是將內存中的元數據信息保存到磁盤,需要的時候就再從磁盤讀取出來到內存。Hadoop1,Hadoop2偽分布式沒有和內存中保持實時同步。
    • edits:操作日志文件
    • fstime:保存最后一次的還原點時間
  • NameNode工作特點
    • NameNode始終在內存中保存metadata,用于處理用戶的"讀請求"
    • “寫請求”時,namenode會在寫入的時候,向edits文件寫日志。文件上傳成功后,才會修改內存中的元數據信息。先后順序,是指edits文件和內存中的先后
  • Hadoop會維護一個fsimage文件,但是該文件不會隨時和namenode內存中的metadata保持一致,而是每隔一段時間才會合并edits文件來更新內容。
    SecondaryNameNode就是用來合并fsimage和edits文件來更新NameNode中的metadata

DataNode

如果130M的數據,會被分成2塊。但是第二塊并不會給分配128M空間。

Secondary NameNode(集群中是沒有的)

Secondary NameNode不是NameNode的熱備。當NameNode宕機,并不會作為替補。Secondary NameNode僅僅是NameNode的工作助理。

  • 執行過程
    從NameNode中得到fsimage和edits,合并,然后生成新的fsimage,在本地保存,并返回給NameNode
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容