最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解

 更新時間:2023年02月07日 15:58:30   作者:點滴星光  
這篇文章主要為大家介紹了NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

NameNode 重啟恢復(fù)數(shù)據(jù)的流程

我們都知道 NameNode 中存儲的是分布式存儲系統(tǒng)的元數(shù)據(jù),在 NameNode 重啟之后,內(nèi)存的數(shù)據(jù)已經(jīng)丟失了的,所以需要重新加載數(shù)據(jù)。

這時候我們采用的方法是 FsImage 快照 + editslog 操作日志兩種結(jié)合的方法;

那它們是怎么結(jié)合的呢?換句話說,這兩種機(jī)制是通過什么聯(lián)系起來的呢??

FsImage 和 editslog 的聯(lián)系

在內(nèi)存時的標(biāo)識

FsImage 是由 editslog 經(jīng)過 checkpoint 機(jī)制而得到的,也就是說先有 editslog 再有 FsImage,那么我們來回顧一下 editslog 的組織格式:

message EditLog {
  int64 txId = 1;
  // 操作類型
  int32 opType = 2;
  string path = 3;
  map<string, string> attr = 4;
}

可以看到 editslog 中是有一個 txId 的屬性的,這個屬性是自增的(long 類型,64位取值范圍非常大,理論上不會超出了的);txId 是 editslog 的唯一標(biāo)識。

txId 是在內(nèi)存中維護(hù)著的,每生成一個 editslog 都會將當(dāng)前 txid 賦值給它,并將 txid + 1;這個在內(nèi)存維護(hù)的 txid 是當(dāng)前系統(tǒng)中最大的 txid 即 max_txid ,在生成 FsImage 會將系統(tǒng)中所有數(shù)據(jù)生成快照,并將當(dāng)前 max_txid 賦值給它。

我們都知道 FsImage 中有兩個重要的屬性:

public class FsImage {
    ......
    /**
     * 當(dāng)前最大的txId
     */
    private long maxTxId;
    /**
     * 內(nèi)容
     */
    private INode iNode;
    ......
}

iNode 其實就是元數(shù)據(jù),而 maxTxId 其實就是生成 FsImage 時,系統(tǒng)中的 max_txid。

在磁盤中的標(biāo)識

上述我們介紹了 FsImage 和 editslog 數(shù)據(jù)在內(nèi)存中的標(biāo)識,但是這兩樣數(shù)據(jù)都是需要持久化的,那么在持久化之后,怎么標(biāo)識他們呢?

我們都知道他們的數(shù)據(jù)中包含了 txid ,可是這個數(shù)據(jù)是需要加載進(jìn)內(nèi)存才能看到的。。。

為了在剛恢復(fù)數(shù)據(jù)的時候,也能看到 txid (系統(tǒng)是根據(jù) txid 來聯(lián)系 FsImage 和 editslog, 進(jìn)行數(shù)據(jù)恢復(fù)的),所以在持久化的時候,我們對這兩種文件的命名進(jìn)行了特殊的組織格式:

fsimage文件的文件名是"fsimage_txid",其中 txid 是文件系統(tǒng)狀態(tài)的事務(wù)ID

editslog 文件的文件名是類似 “1_1000.log” 這種格式(editslog 記錄的可能是多條數(shù)據(jù))

恢復(fù)元數(shù)據(jù)的流程

  • 根據(jù)指定路徑,找到 FsImage 文件的存放地點
  • 排序,找出 txid 最大的 FsImage (即最新的 FsImage)
  • 解析最新的 FsImage 數(shù)據(jù)進(jìn)內(nèi)存
  • 找到 editslog,并將其排序,找出 txid 比最新 FsImage 的 txid 還大的所有 editslog 文件
  • 將返回的editslog文件數(shù)據(jù)解析進(jìn)內(nèi)存

以上就是NameNode 重啟恢復(fù)數(shù)據(jù)的流程詳解的詳細(xì)內(nèi)容,更多關(guān)于NameNode 重啟恢復(fù)數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot配置攔截器實現(xiàn)過程詳解

    SpringBoot配置攔截器實現(xiàn)過程詳解

    在系統(tǒng)中經(jīng)常需要在處理用戶請求之前和之后執(zhí)行一些行為,例如檢測用戶的權(quán)限,或者將請求的信息記錄到日志中,即平時所說的"權(quán)限檢測"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項目中整合攔截器的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Java虛擬機(jī)內(nèi)存結(jié)構(gòu)及編碼實戰(zhàn)分享

    Java虛擬機(jī)內(nèi)存結(jié)構(gòu)及編碼實戰(zhàn)分享

    這篇文章主要介紹了Java虛擬機(jī)內(nèi)存結(jié)構(gòu)及編碼實戰(zhàn)分享,文章圍繞詳細(xì)主題展開相關(guān)資料具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • Java異常區(qū)分和處理的一些經(jīng)驗分享

    Java異常區(qū)分和處理的一些經(jīng)驗分享

    這篇文章介紹了Java異常區(qū)分和處理的一些經(jīng)驗分享,主要是異常選擇和使用中的一些誤區(qū)總結(jié)與歸納,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java Lambda表達(dá)式是一種函數(shù)式編程的特性,可簡化匿名內(nèi)部類的寫法,與函數(shù)式接口搭配使用,實現(xiàn)代碼簡潔、可讀性高、易于維護(hù)的特點,適用于集合操作、多線程編程等場景
    2023-04-04
  • spring注解如何為bean指定InitMethod和DestroyMethod

    spring注解如何為bean指定InitMethod和DestroyMethod

    這篇文章主要介紹了spring注解如何為bean指定InitMethod和DestroyMethod,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • PowerJob?AbstractSqlProcessor方法工作流程源碼解讀

    PowerJob?AbstractSqlProcessor方法工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob?AbstractSqlProcessor方法工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java基礎(chǔ)知識之成員變量和局部變量淺顯易懂總結(jié)

    Java基礎(chǔ)知識之成員變量和局部變量淺顯易懂總結(jié)

    從語法形式上,看成員變量是屬于類的,而局部變量是在方法中定義的變量或是方法的參數(shù);成員變量可以被public,private,static等修飾符所修飾,而局部變量不能被訪問控制修飾符及static所修飾
    2021-09-09
  • Java正則表達(dá)式之Pattern類實例詳解

    Java正則表達(dá)式之Pattern類實例詳解

    Pattern類的作用在于編譯正則表達(dá)式后創(chuàng)建一個匹配模式,下面這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式之Pattern類的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Java保留兩位小數(shù)的實現(xiàn)方法

    Java保留兩位小數(shù)的實現(xiàn)方法

    這篇文章主要介紹了 Java保留兩位小數(shù)的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • springboot的切面應(yīng)用方式(注解Aspect)

    springboot的切面應(yīng)用方式(注解Aspect)

    文章總結(jié):Spring?Boot提供了三種攔截器:Filter、Interceptor和Aspect,Filter主要用于內(nèi)容過濾和非登錄狀態(tài)的非法請求過濾,無法獲取Spring框架相關(guān)的信息,Interceptor可以在獲取請求類名、方法名的同時,獲取請求參數(shù),但無法獲取參數(shù)值
    2024-11-11

最新評論

清水河县| 岢岚县| 乌兰浩特市| 哈密市| 马山县| 当阳市| 天祝| 类乌齐县| 冕宁县| 永安市| 罗山县| 六安市| 承德市| 沈丘县| 大荔县| 汉中市| 茂名市| 荔浦县| 进贤县| 岱山县| 康平县| 衡南县| 格尔木市| 嵊泗县| 乐业县| 浪卡子县| 泰州市| 阿克苏市| 柯坪县| 清原| 喀喇沁旗| 武安市| 佛坪县| 贺州市| 南充市| 西峡县| 永修县| 怀集县| 什邡市| 普定县| 屏东市|