<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          HBase 實(shí)踐 | 如何跨CDP集群通過(guò)HBase快照遷移數(shù)據(jù)

          共 3750字,需瀏覽 8分鐘

           ·

          2021-10-29 03:22

          1.文檔編寫目的



          該文檔主要通過(guò)使用HBase快照導(dǎo)出歷史全量數(shù)據(jù)并還原到新的HBase集群,然后改造源生的ExportSnapshot類,通過(guò)比較變化的文件實(shí)現(xiàn)導(dǎo)出增量,并最終實(shí)現(xiàn)HBase跨集群的增量備份和還原。?

          • 測(cè)試環(huán)境

          1.CDH7.1.4、啟用Kerberos、hbase 2.2.3

          2.CDP7.1.6 、啟用Kerberos、hbase 2.2.3

          3.使用ldapuser1用戶操作


          2.操作步驟



          2.1在cdp7.1.4生成一張測(cè)試的表


          2.1.1 使用HBase的pe命令生成一個(gè)10G的表

          hbase?org.apache.hadoop.hbase.PerformanceEvaluation?--compress=SNAPPY?--size=10?sequentialWrite?10

          建表權(quán)限不夠報(bào)錯(cuò)


          在ranger配置如下



          2.1.2 TestTable表HDFS大小

          hadoop?fs?-du?-h?/hbase/data/default/

          此處由于指定了TestTable表的壓縮格式為SNAPPY,所以在HDFS上只有2.5GB



          2.1.3 TestTable表的總數(shù)據(jù)量,共10485760條數(shù)據(jù)

          count?'TestTable'


          2.2通過(guò)快照實(shí)現(xiàn)HBase跨集群的全量數(shù)據(jù)備份和還原


          2.2.1生成TestTable表快照

          snapshot?'TestTable','TestTable-snapshot1'



          2.2.2導(dǎo)出TestTable快照數(shù)據(jù)

          在命令行使用HBase自帶的ExportSnapshot導(dǎo)出快照

          hbase?org.apache.hadoop.hbase.snapshot.ExportSnapshot?-snapshot?TestTable-snapshot1?-copy-to?hdfs://cdp02:8020/tmp/hbasebackup/TestTable-snapshot1


          查看導(dǎo)出的快照數(shù)據(jù)

          hadoop?fs?-ls?/tmp/hbasebackup/TestTable-snapshot1

          hadoop?fs?-du?-h?/tmp/hbasebackup/TestTable-snapshot1

          可以看到導(dǎo)出快照實(shí)際是把快照的信息及快照記錄的所有數(shù)據(jù)文件分別導(dǎo)出到指定目錄下的.hbase-snapshot和archive目錄下。


          CDSW 產(chǎn)品文檔的格式和內(nèi)容發(fā)生了重大變化。


          2.2.3將快照數(shù)據(jù)復(fù)制到cdp7.1.6集群

          因?yàn)閮蓚€(gè)集群都有Kerberos認(rèn)證,在用到distcp命令之前,在兩集群之間必須做互信(可聯(lián)系cdh運(yùn)維人員)

          hadoop?distcp?hdfs://cdp02:8020/tmp/hbasebackup/TestTable-snapshot1/.hbase-snapshot/TestTable-snapshot1?hdfs://cdh3.macro.com:8020/hbase/.hbase-snapshot
          hadoop?distcp?hdfs://cdp02:8020/tmp/hbasebackup/TestTable-snapshot1/archive/data/default/TestTable?hdfs://cdh3.macro.com:8020/hbase/archive/data/default


          復(fù)制報(bào)錯(cuò),權(quán)限不足


          集群cdp7.1.6ranger配置如下


          查看復(fù)制到cdp7.1.6集群上的快照數(shù)據(jù)

          hdfs?dfs?-ls?hdfs://cdh3.macro.com:8020/hbase/.hbase-snapshot
          hdfs?dfs?-ls?hdfs://cdh3.macro.com:8020/hbase/archive/data/default
          hdfs?dfs?-du?-h?hdfs://cdh3.macro.com:8020/hbase/



          2.2.4 使用TestTable-snapshot1快照恢復(fù)TestTable表

          開通以下權(quán)限,不然會(huì)報(bào)權(quán)限不足的問(wèn)題


          如果不開通會(huì)報(bào)下面的錯(cuò)誤


          list_snapshots
          restore_snapshot?'TestTable-snapshot1'



          2.2.5 驗(yàn)證恢復(fù)后的表數(shù)據(jù)是否與快照時(shí)數(shù)據(jù)一致

          通過(guò)快照恢復(fù)的數(shù)據(jù)與快照時(shí)的數(shù)據(jù)總條數(shù)一致,表內(nèi)容一致。


          2.3通過(guò)快照實(shí)現(xiàn)HBase跨集群的增量數(shù)據(jù)備份和還原


          2.3.1 修改TestTable表數(shù)據(jù)

          通過(guò)hbase shell修改一條數(shù)據(jù)和增加一條數(shù)據(jù)

          put?'TestTable','11111111111111111111111111','info0:AppendTest','1111'
          put?'TestTable','00000000000000000000000000','info0:AppendTest','00000'


          TestTable表的數(shù)據(jù)總量為10485761

          count?'TestTable'



          2.3.2 再次創(chuàng)建TestTable表快照

          snapshot?'TestTable','TestTable-snapshot2'



          2.3.3 導(dǎo)出第二次快照的增量數(shù)據(jù)

          這一步主要是將TestTable-snapshot2與TestTable-snapshot1兩次快照之間的增量數(shù)據(jù)導(dǎo)出,HBase默認(rèn)的ExportSnapshot方法是沒有增量快照導(dǎo)出的方法,這里在原有快照導(dǎo)出的基礎(chǔ)上對(duì)源碼進(jìn)行修改,來(lái)完成兩個(gè)快照之間增量數(shù)據(jù)的導(dǎo)出。


          github源碼地址:https://github.com/javaxsky/hbaseexport 有編譯好的jar包,下載即可,將里面的balancer.jar和hbase-export-1.0-SNAPSHOT.jar放在目錄“/opt/cloudera/parcels/CDH/lib/hbase/lib”


          在命令行執(zhí)行如下命令將兩次快照的增量數(shù)據(jù)導(dǎo)出到HDFS

          hbase?org.hadoop.hbase.dataExport.ExportSnapshot?-snapshot?TestTable-snapshot2?-copy-to?hdfs://cdp02:8020/tmp/hbasebackup/snapshot2-snapshot1/?-snapshot-old?TestTable-snapshot1


          導(dǎo)出的數(shù)據(jù)目錄

          hadoop?fs?-du?-h?/tmp/hbasebackup/snapshot2-snapshot1



          2.3.4 將導(dǎo)出的快照文件復(fù)制到CDP7.1.6集群

          hadoop?distcp?hdfs://cdp02:8020/tmp/hbasebackup/snapshot2-snapshot1/.hbase-snapshot/TestTable-snapshot2?hdfs://cdh3.macro.com:8020/hbase/.hbase-snapshot
          hadoop?distcp?hdfs://cdp02:8020/tmp/hbasebackup/snapshot2-snapshot1/archive/data/default/TestTable?hdfs://cdh3.macro.com:8020/hbase/archive/data/default


          導(dǎo)入增量數(shù)據(jù)后數(shù)據(jù)目錄

          hdfs?dfs?-du?-h?hdfs://cdh3.macro.com:8020/hbase/



          2.3.5 命令行使用快照恢復(fù)TestTable表數(shù)據(jù)并校驗(yàn)數(shù)據(jù)

          disable?'TestTable'
          list_snapshots
          restore_snapshot?'TestTable-snapshot2'
          enable?'TestTable'
          get?'TestTable','00000000000000000000000000'
          count?'TestTable'


          3.總結(jié)




          HBase的Snapshot僅涉及metadata的記錄,不會(huì)涉及數(shù)據(jù)的拷貝

          HBase的ExportSnapshot導(dǎo)出快照操作時(shí)在HDFS層級(jí)進(jìn)行的,不會(huì)對(duì)HBase的Master和RegionServer服務(wù)造成額外的負(fù)擔(dān)。

          重寫的ExportSnapshot增量快照導(dǎo)出是通過(guò)兩個(gè)快照文件列表的差異實(shí)現(xiàn),只需要將有差異的文件導(dǎo)出即可。

          使用ExportSnapshot導(dǎo)出快照數(shù)據(jù)時(shí)未造成導(dǎo)出數(shù)據(jù)膨脹,與原始啟用了Snappy壓縮的HBase表大小基本一致。

          在修改HBase自帶的ExportSnapshot,需要根據(jù)對(duì)應(yīng)的HBase版本獲取源碼進(jìn)行修改,不同版本的ExportSnapshot的Packages路徑有改動(dòng)。

          在跨集群傳輸SnapShot文件時(shí)推薦使用Cloudera企業(yè)版功能BDR,實(shí)現(xiàn)跨集群的文件拷貝傳輸。

          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女操逼视频免费观看 | 欧美一级免费观看视频 | 久久99国产精品成人欧美 | 中文字幕一区二区三区四虎在线 | 久热精品在线观看视频 |