溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hbase數據備份案例講解

發布時間:2020-03-08 23:49:48 來源:網絡 閱讀:328 作者:victor19901114 欄目:大數據

HBase的數據備份

1.1 基于HBase提供的類對表進行備份

  • 使用HBase提供的類把HBase中某張表的數據導出到HDFS,之后再導出到測試hbase表中。

  • (1) ==從hbase表導出到HDFS==

    [hadoop@node01 shells]$ hbase org.apache.hadoop.hbase.mapreduce.Export myuser /hbase_data/myuser_bak
    
  • (2) ==文件導入hbase表==

    hbase shell中創建備份目標表

    create 'myuser_bak','f1','f2'
  • 將HDFS上的數據導入到備份目標表中

    hbase org.apache.hadoop.hbase.mapreduce.Driver import myuser_bak /hbase_data/myuser_bak/*
  • 補充說明

    以上都是對數據進行了全量備份,后期也可以實現表的增量數據備份,增量備份跟全量備份操作差不多,只不過要在后面加上時間戳。

    例如:
    HBase數據導出到HDFS

    hbase org.apache.hadoop.hbase.mapreduce.Export test /hbase_data/test_bak_increment 開始時間戳  結束時間戳

1.2 基于snapshot快照對表進行備份

  • 通過snapshot快照的方式實現HBase數據的遷移和拷貝。這種方式比較常用,效率高,也是最為推薦的數據遷移方式。

  • HBase的snapshot其實就是一組==metadata==信息的集合(文件列表),通過這些metadata信息的集合,就能將表的數據回滾到snapshot那個時刻的數據。

    • 首先我們要了解一下所謂的HBase的LSM類型的系統結構,我們知道在HBase中,數據是先寫入到Memstore中,當Memstore中的數據達到一定條件,就會flush到HDFS中,形成HFile,后面就不允許原地修改或者刪除了。
    • 如果要更新或者刪除的話,只能追加寫入新文件。既然數據寫入以后就不會在發生原地修改或者刪除,這就是snapshot做文章的地方。做snapshot的時候,只需要給快照表對應的所有文件創建好指針(元數據集合),恢復的時候只需要根據這些指針找到對應的文件進行恢復就Ok。這是原理的最簡單的描述,下圖是描述快照時候的簡單流程:
      Hbase數據備份案例講解

1.3 快照實戰

  • 1、創建表的snapshot
snapshot 'tableName', 'snapshotName'
  • 2、查看snapshot

    list_snapshots  

? 查找以test開頭的snapshot

list_snapshots 'test.*'
  • 3、恢復snapshot

? ps:這里需要對表進行disable操作,先把表置為不可用狀態,然后在進行進行restore_snapshot的操作

disable 'tableName'
restore_snapshot 'snapshotName'
enable 'tableName'
  • 4、刪除snapshot

    delete_snapshot 'snapshotName'
  • 5、遷移 snapshot

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
    -snapshot snapshotName  \
    -copy-from hdfs://src-hbase-root-dir/hbase \
    -copy-to hdfs://dst-hbase-root-dir/hbase \
    -mappers 1 \
    -bandwidth 1024
    
    例如:
    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
    -snapshot test  \
    -copy-from hdfs://node01:8020/hbase \
    -copy-to hdfs://node01:8020/hbase1 \
    -mappers 1 \
    -bandwidth 1024

? 注意:這種方式用于將快照表遷移到另外一個集群的時候使用,使用MR進行數據的拷貝,速度很快,使用的時候記得設置好bandwidth參數,以免由于網絡打滿導致的線上業務故障。
Hbase數據備份案例講解

  • 6、將snapshot使用bulkload的方式導入

    hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles \
    hdfs://dst-hbase-root-dir/hbase/archive/datapath/tablename/filename \
    tablename
    
    例如:
    創建一個新表
    create 'newTest','f1','f2'
    hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://node1:9000/hbase1/archive/data/default/test/6325fabb429bf45c5dcbbe672225f1fb newTest

dIncrementalHFiles hdfs://node1:9000/hbase1/archive/data/default/test/6325fabb429bf45c5dcbbe672225f1fb newTest



## 
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女