HDFS的基本概念)

來源:互聯網
上載者:User
HDFS的基本概念 1、資料區塊(block)

HDFS(Hadoop Distributed File System)預設的最基本的儲存單位是64M的資料區塊。

和普通檔案系統相同的是,HDFS中的檔案是被分成64M一塊的資料區塊儲存的。

不同於普通檔案系統的是,HDFS中,如果一個檔案小於一個資料區塊的大小,並不佔用整個資料區塊儲存空間。

2、中繼資料節點(Namenode)和資料節點(datanode)

namenode用來管理檔案系統的命名空間

其將所有的檔案和檔案夾的中繼資料儲存在一個檔案系統樹中。

這些資訊也會在硬碟上儲存成以下檔案:命名空間鏡像(namespace image)及修改日誌(edit log)

其還儲存了一個檔案包括哪些資料區塊,分布在哪些資料節點上。然而這些資訊並不儲存在硬碟上,而是在系統啟動的時候從資料節點收集而成的。

datanode是檔案系統中真正儲存資料的地方。

用戶端(client)或者中繼資料資訊(namenode)可以向資料節點請求寫入或者讀出資料區塊。

其周期性的向中繼資料節點回報其儲存的資料區塊資訊。

從中繼資料節點(secondary namenode)

secondary namenode並不是中繼資料節點出現問題時候的備用節點,它和中繼資料節點負責不同的事情。

其主要功能就是周期性將namenode的namespace image和edit log合并,以防記錄檔過大。

合并過後的namespace image也在從中繼資料節點儲存了一份,以防namenode失敗的時候,可以恢複。

2.1、namenode檔案夾結構
${dfs.name.dir}/current/VERSION                       /edits                       /fsimage                       /fstime

 

VERSION檔案是java properties檔案,儲存了HDFS的版本號碼。

#Fri Dec 21 16:45:25 CST 2012namespaceID=1555019963cTime=0storageType=NAME_NODElayoutVersion=-32

layoutVersion是一個負整數,儲存了HDFS的持久化在硬碟上的資料結構的格式版本號碼。

namespaceID是檔案系統的唯一識別碼,是在檔案系統初次格式化時產生的。 

cTime此處為0 

storageType表示此檔案夾中儲存的是中繼資料節點的資料結構。

 

fsimage和edits:

當檔案系統用戶端(client)進行寫操作時,首先把它記錄在修改日誌中(edit log)

中繼資料節點在記憶體中儲存了檔案系統的中繼資料資訊。在記錄了修改日誌後,中繼資料節點則修改記憶體中的資料結構。

每次的寫操作成功之前,修改日誌都會同步(sync)到檔案系統。

fsimage檔案,也即命名空間映像檔案,是記憶體中的中繼資料在硬碟上的checkpoint,它是一種序列化的格式,並不能夠在硬碟上直接修改。

同資料的機制相似,當中繼資料節點失敗時,則最新checkpoint的中繼資料資訊從fsimage載入到記憶體中,然後逐一重新執行edit log中的操作。

 

2.2、secondary namenode的目錄結構 
${dfs.name.dir}/current/VERSION                       /edits                       /fsimage                       /fstime               /previous.checkpoint/VERSION                       /edits                       /fsimage                       /fstime

secondary namenode就是用來協助namenode將記憶體中的中繼資料資訊checkpoint到硬碟上的。

checkpoint的過程如下:

secondary namenode通知namenode產生新的記錄檔edits.new,以後的日誌都寫到新的記錄檔中。

secondary namenode用http get從中繼資料節點獲得fsimage檔案及舊的記錄檔。

secondary namenode將fsimage檔案載入到記憶體中,並執行記錄檔中的操作,然後產生新的fsimage檔案。

secondary namenode將新的fsimage檔案用http post傳回namenode

namenode可以將舊的fsimage檔案及舊的記錄檔,換為新的fsimage檔案和新的記錄檔(第一步產生的),然後更新fstime檔案,寫入此次checkpoint的時間。

這樣namenode中的fsimage檔案儲存了最新的checkpoint的中繼資料資訊,記錄檔也重新開始,不會變的很大了。

 

2.3、datanode的目錄結構 
${dfs.name.dir}/current/VERSION                       /blk_<id_1>                       /blk_<id_1>.meta                       /blk_<id_2>                       /blk_<id_2>.meta                       /...                       /blk_<id_64>                       /blk_<id_64>.meta                       /subdir0/                       /subdir1/                       /...                       /subdir63/

blk_<id>儲存的是HDFS的資料區塊,其中儲存了具體的位元據。

blk_<id>.meta儲存的是資料區塊的屬性資訊:版本資訊,類型資訊,和checksum

subdirxx:當一個目錄中的資料區塊到達一定數量的時候,則建立子檔案夾來儲存資料區塊及資料區塊屬性資訊。

資料節點的VERSION檔案格式如下:

namespaceID=1232737062storageID=DS-1640411682-127.0.1.1-50010-1254997319480cTime=0storageType=DATA_NODElayoutVersion=-18

 

 

轉自 http://www.cnblogs.com/forfuture1978/archive/2010/03/14/1685351.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.