Hadoop 元資料持久化

2022-08-21 01:48:10 字數 855 閱讀 6505

檔案系統元資料的持久化

namenode儲存hdfs的元資料。對於任何對檔案元資料產生修改的操作,namenode都使用乙個稱為editlog的事務日誌記錄下來。例如,在hdfs中建立乙個檔案,namenode就會在editlog中插入一條記錄來表示;同樣,修改檔案的replication因子也將往

editlog插入一條記錄。namenode在本地os的檔案系統中儲存這個editlog。整個檔案系統的namespace,包括block到檔案的對映、檔案的屬性,都儲存在稱為fsimage的檔案中,這個檔案也是放在namenode所在系統的檔案系統上。

namenode在記憶體中儲存著整個檔案系統namespace和檔案blockmap的映像。這個關鍵的元資料設計得很緊湊,因而乙個帶有4g記憶體的

,並將這個新版本的fsimage從記憶體中flush到硬碟上,然後再truncate這個舊的editlog,因為這個舊的editlog的事務都已經作用在fsimage上了。這個過程稱為checkpoint。在當前實現中,checkpoint只發生在namenode啟動時,在不久的將來我們將實現支援週期性的checkpoint。

datanode並不知道關於檔案的任何東西,除了將檔案中的資料儲存在本地的檔案系統上。它把每個hdfs資料塊儲存在本地檔案系統上隔離的檔案中。

datanode並不在同乙個目錄建立所有的檔案,相反,它用啟發式地方法來確定每個目錄的最佳檔案數目,並且在適當的時候建立子目錄。在同乙個目錄建立所有的檔案不是最優的選擇,因為本地檔案系統可能無法高效地在單一目錄中支援大量的檔案。當乙個datanode啟動時,它掃瞄本地檔案系統,對這些本地檔案產生相應的乙個所有hdfs資料塊的列表,然後傳送報告到namenode,這個報告就是blockreport。

HDFS的元資料持久化

dfs.name.dir 這個引數設定hdfs的元資料資訊存放在本地作業系統的目錄,如果有多個目錄用逗號分開。目錄裡的檔案示例見下圖 1049092 2009 11 12 09 15 edits 17678000 2009 11 12 08 50 fsimage 8 2009 11 12 08 50...

資料持久化

資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...

資料持久化

首先是cocos2d x自己封閉的ccuserdefault跨平台的檔案儲存類,它是用的xml格式,具體操作非常類似於應用開發的ini檔案,可操作性不是很強,如果訪問比較複雜的資料,那就得自己動手去解析乙個字串,下面是示例 基本一看就懂 void userdefaulttest dotest els...