2017-05-18 6 views
0

10TB以上のデータを格納するHbaseクラスタを使用しているため、これらのデータを新しいクラスタに移行する必要があります。既存のHbaseデータを新しいクラスタに移行する方法

私はHbaseバックアップがフルシャットダウンバックアップ(Distcp)とライブクラスタバックアップ(レプリケーション、エクスポート、コピーテーブル)を持っていることを知っています。

私の場合、Hbaseクラスタの定期的な完全シャットダウンは許されません。また、レプリケーションで履歴データをコピーできないことがわかっています。つまり、ExportまたはCopyTableを使用できますか?


は、I 2つの質問があります:私たちはエクスポートまたはCopyTable等を使用

1.Should?どうして?

2. ExportまたはCopyTableを使用すると、クラスタが稼働しているため、コピープロセスで編集内容が欠落する可能性があります。回避方法はありますか?

答えて

0

CopyTable

CopyTableは直接既存のHBaseのテーブルにデータを書き込みます。これは、同じクラスタまたはリモートクラスタで実行できます。 これを行うには、両方のクラスタをオンラインにする必要があります。

輸出

HDFSフォルダにプレーンシーケンスファイルにHBaseのテーブルのデータをエクスポートするために使用される輸出。 MapReduceジョブが作成され、HBaseクラスタを呼び出して指定されたテーブルからデータを取得し、HDFSフォルダに書き込みます。

MRジョブに時間がかかるため、エクスポートではなくコピーテーブルを使用することをお勧めします。

参考:二つのクラスタ、でclusterA、clusterBの、TABLEXが移行する必要がDzone HBase

+0

私はCopyTableを使用することができますが、リファレンスガイドには「クラスタが稼動しているため、コピープロセスで編集内容が見逃される危険性があります」と述べています。 –

0

を与えられました。クラスタAから

移行TABLEXはB.をクラスタ化する

  1. シェル、enable_table_replication 'TABLEX' シェル、disable_peerに
  2. 'アドオン複製ピアA-から '99'> B
  3. -copy-にtablex_snapshot ' 'の機械、輸出スナップショット、ビン/ HBaseのorg.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot上
  4. ' TABLEX '' tablex_snapshotシェル、スナップショットの
  5. ' 99' hdfs:// clusterB:8020/uシェル、enable_peer '99' 行わ

にBシェル上のSER/HBaseの-mappers 16

  • をrestore_snapshot 'tablex_snapshot'、 'TABLEX'
  • 関連する問題