[原]HBase Snapshot - 1 - 簡介

作者:clark010
出處:http://www.reibang.com/u/f9af3f199145
版權(quán):本文版權(quán)歸作者所有
轉(zhuǎn)載:歡迎轉(zhuǎn)載蔑赘,但未經(jīng)作者同意狸驳,必須保留此段聲明缩赛;必須在文章中給出原文連接耙箍;否則必究法律責(zé)任


背景

HBase的snapshot及restore都不涉及文件的移動和拷貝,操作耗時在秒級別酥馍;因為底層依賴的HDFS FileSystem不支持硬鏈接,所以HBase自己實現(xiàn)了一套FileLink的邏輯物喷,每次snapshot都只是進(jìn)行文件的link而不實際移動數(shù)據(jù)卤材,而這保證了snapshot操作的效率(雖然不可避免的需要進(jìn)行一下內(nèi)存flush峦失,但基本最耗時的消耗都在flush這一下)。下面會通過源碼的角度解析一下HBase snapshot的實現(xiàn)术吗。

** 本文基于HBase-1.1.2版本代碼分析 **

整個Snapshot相關(guān)內(nèi)容會分為四篇Blog,本文為第一篇


Snapshot命令行

  • list_snapshots
    • 列出所有已經(jīng)存在的snapshot
  • snapshot <tableName> <snapshotName> [{SKIP_FLUSH => true}]
    • 對table做snapshot
  • clone_snapshot <snapshotName> <tableName>
    • 通過某一個snapshot clone一個新表
  • restore_snapshot <snapshotName>
    • 從某一個snapshot對表做restore(需要先disable掉相關(guān)的hbase表)

需要注意一下较屿,使用snapshot功能需要在hbase-site.xml打開snapshot開關(guān)

<property>
    <name>hbase.snapshot.enabled</name>
    <value>true</value>
</property>

更多命令的詳細(xì)介紹可以參考HBase Wiki


Snapshot相關(guān)存儲路徑

/[hbase-root]
    |__ .hbase-snapshot  存儲所有snapshot的元信息
        |__ .tmp/  snapshot的workDir,臨時數(shù)據(jù)存放
        |__ [snapshot name]
            |__ .snapshotinfo  snapshot的元信息
            |__ data.manifest  snapshot相關(guān)hfile的元信息
    |__ data
        |__ [namespace]  
            |__ [table]
                |__ .tabledesc
                    |__ .tableinfo.[id]
                |__ [encode region]
                    |__ .regioninfo
                    |__ [column family]
                        |__ [HFile / Link Files] HBase底層支持HFile及鏈接文件
                        |__ .links-[regionName]  back reference隘蝎,用于快速的刪除無用的引用文件
                            |__ [ref files]
                    |__ .....
    |__ archive
        |__ data
            |__ [namespace]
                |__ [table]
                    |__ [encode region]
                        |__ [column family]
                            |__ [HFile / Link Files] 
    |__ WALs / oldWALs / ......

主要Java類

  • Client:
    • HBaseAdmin - 入口類
  • Master:
    • MasterRpcServices - 接收Client端的RPC請求
    • SnapshotManager
    • EnabledTableSnapshotHandler extends TableSnapshotHandler - 在線表
    • DisabledTableSnapshotHandler extends TableSnapshotHandler - 離線表
    • ProcedureCoordinator - 用于提交分布式snapshot事務(wù)
    • Procedure
    • ZKProcedureCoordinatorRpcs extends ProcedureCoordinator
    • SnapshotFileCache - 緩存snapshot引用文件,用于判斷文件是否deletable
    • SnapshotFileCleaner - 清理snapshot文件線程
  • RegionServer:
    • RegionServerSnapshotManager - 監(jiān)控分布式任務(wù)嘱么,并創(chuàng)建管理具體子任務(wù)
    • FlushSnapshotSubprocedure
    • RegionSnapshotTask - FlushSnapshotSubprocedure內(nèi)部類
    • HRegion - 調(diào)用snapshot接口狮含,處理具體的snapshot任務(wù)
    • SnapshotManifest - Utility class to help read/write the Snapshot Manifest
    • SnapshotManifestV2/SnapshotManifestV1 - SnapshotManifest內(nèi)存數(shù)據(jù)結(jié)構(gòu)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曼振,一起剝皮案震驚了整個濱河市几迄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌映胁,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甲雅,死亡現(xiàn)場離奇詭異坑填,居然都是意外死亡,警方通過查閱死者的電腦和手機弛姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娱据,“玉大人蚪黑,你說我怎么就攤上這事〖纱” “怎么了换途?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵更舞,是天一觀的道長盘榨。 經(jīng)常有香客問我郊愧,道長朴译,這世上最難降的妖魔是什么属铁? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任眠寿,我火速辦了婚禮,結(jié)果婚禮上盯拱,老公的妹妹穿的比我還像新娘。我一直安慰自己例嘱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布拼卵。 她就那樣靜靜地躺著奢浑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雀彼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天低葫,我揣著相機與錄音详羡,去河邊找鬼嘿悬。 笑死实柠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窒盐。 我是一名探鬼主播草则,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炕横!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起葡粒,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗽交,沒想到半個月后卿嘲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡拾枣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了盒让。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡邑茄,死狀恐怖姨蝴,靈堂內(nèi)的尸體忽然破棺而出撩扒,到底是詐尸還是另有隱情似扔,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布搓谆,位于F島的核電站豪墅,受9級特大地震影響泉手,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜偶器,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屏轰。 院中可真熱鬧颊郎,春花似錦霎苗、人聲如沸姆吭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽检眯。三九已至,卻和暖如春昆淡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昂灵。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工避凝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人眨补。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓管削,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佩谣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容