I.はじめに
本論文では、一般的に使用される3つの簡単なHBaseの災害復旧ソリューション、すなわち説明CopyTable、エクスポート / インポート、スナップショットを。次のように彼らは、導入されました。
二、CopyTable
2.1はじめに
CopyTableは、新しいテーブルに既存のテーブルからデータをコピーすることができ、それは次の特徴があります。
- 支持時間間隔、行セクション、テーブル名を変更し、カラムは、家族の名前を変更し、データがコピー機能を削除しましたか。
- コマンドを実行する前に、まず、元のテーブル新しいテーブルと同じ構造を作成する必要があります。
CopyTable
操作は、すなわち使用して、HBaseのクライアントAPIに基づいて行われるscan
使用クエリput
書き込みのために。
2.2コマンドの形式
Usage: CopyTable [general options] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR] <tablename>
2.3共通コマンド
- クラスタCopyTable付き
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=tableCopy tableOrig
- CopyTable異なるクラスタの下で
# 两表名称相同的情况
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--peer.adr=dstClusterZK:2181:/hbase tableOrig
# 也可以指新的表名
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--peer.adr=dstClusterZK:2181:/hbase \
--new.name=tableCopy tableOrig
- ここでは公式の完全な例で、開始時刻と終了時刻を指定し、クラスタアドレス、およびのみ指定した列の家族をコピーします。
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
--starttime=1265875194289 \
--endtime=1265878794289 \
--peer.adr=server1,server2,server3:2181:/hbase \
--families=myOldCf:myNewCf,cf2,cf3 TestTable
2.4その他のパラメータ
あなたはできる--help
より多くのサポート・パラメータを参照してください
# hbase org.apache.hadoop.hbase.mapreduce.CopyTable --help
三、エクスポート/インポート
3.1はじめに
Export
HDFSへのエクスポートデータをサポートしてImport
HDFSからデータをインポートするためのサポート。Export
また、輸出指定された開始時刻と終了時刻データをサポートし、それが増分バックアップに使用することができます。Export
エクスポートとCopyTable
のHBase上などに依存するscan
操作
3.2コマンドの形式
# Export
hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]
# Inport
hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>
- エクスポートされた
outputdir
ディレクトリが事前に作成することはできません、プログラムが自動的に作成されます。エクスポートが完了すると、エクスポートされたファイルの所有権は、exportコマンドを実行するために、ユーザによって所有されます。 - デフォルトでは、輸出が唯一与えられた
Cell
にかかわらず、バージョン履歴の最新バージョンを、。複数のバージョンをエクスポートするには、する必要が<versions>
目的のパラメータのバージョン番号を交換してください。
3.3共通コマンド
- Exportコマンド
hbase org.apache.hadoop.hbase.mapreduce.Export tableName hdfs 路径/tableName.db
- インポートコマンド
hbase org.apache.hadoop.hbase.mapreduce.Import tableName hdfs 路径/tableName.db
四、スナップショット
4.1はじめに
HBaseのスナップショット(スナップショット)機能を使用すると、(コンテンツとメタデータを含む)は、テーブルのコピーを取得することを可能にし、パフォーマンスのオーバーヘッドは小さいです。唯一のスナップショット記憶情報のメタデータ表とのHFilesので。スナップショットclone
動作がスナップショットから新しいテーブルを作成し、スナップショットのrestore
操作内容は、スナップショット・テーブル・ノードに戻ります。clone
そして、restore
基礎となるHFiles(データファイルを含むHBaseのテーブル)は、唯一の修正メタデータ情報テーブルを変更していないため、操作は、すべてのデータをコピーする必要はありません。
4.2の設定
HBaseのスナップショット機能は、スナップショットを開きたい場合は、あなたがする必要がある、デフォルトでオンになっていないhbase-site.xml
次の構成ファイルのエントリを追加します。
<property>
<name>hbase.snapshot.enabled</name>
<value>true</value>
</property>
4.3共通コマンド
すべてのコマンドのスナップショットは、HBaseのシェルのインタラクティブコマンドラインで実行する必要があります。
1.スナップショットを取ります
# 拍摄快照
hbase> snapshot '表名', '快照名'
メモリ内のデータ実行は、デフォルトでスナップショットを取る前にリフレッシュします。スナップショットに含まれるメモリ内のデータを確認してください。あなたは、メモリ内のデータを含めない場合でも、あなたは使用することができますSKIP_FLUSH
更新を無効にするオプションを。
# 禁止内存刷新
hbase> snapshot '表名', '快照名', {SKIP_FLUSH => true}
2.リストのスナップショット
# 获取快照列表
hbase> list_snapshots
3.削除するスナップショット
# 删除快照
hbase> delete_snapshot '快照名'
4.スナップショットからテーブルを複製
# 从现有的快照创建一张新表
hbase> clone_snapshot '快照名', '新表名'
5.スナップショットを復元
表スナップショットを復元するノード、回復操作は、テーブルを無効にする必要があります
hbase> disable '表名'
hbase> restore_snapshot '快照名'
HBaseの設定がコピーからプライマリReplicationに基づく場合レプリケーションログレベルの作業が、スナップショットファイルシステムレベルの仕事ので、ケースなので、還元後の異なる状態で、マスターサーバーのコピーが存在します。ことに留意すべきです。今度は、同期サーバーは、一貫して再構築同期にすべてのデータの復元ポイントを停止することができます。
参考資料
もっと大きなデータ系列は、GitHubのオープンソースプロジェクトを見つけることができます:ビッグデータははじめに