5

Hbase の設計によると、Hbase は memstore を使用して書き込みを保存し、最終的に memstore がサイズ制限に達すると、それを HDFS にフラッシュします。このフラッシュ作業は、テーマの背後で自動的に行われます。

私の場合、hdfs の移行を行い、あるクラスターから別のクラスターに移行したいと考えています。ソース クラスターで hbase プロセスを停止する前に、メモリ内に何も残っていないことを確認する必要があります。とにかく、memstore が制限に達していなくても、手動でフラッシュを強制することはできますか?

==質問追加==

追加の質問: フラッシュが完了したことをどのように確認しますか? メトリクス経由?

4

2 に答える 2

12

flush 'tableName' シェルから、memstore をフラッシュすることができます。

/hbase/tableただし、 hdfs 経由でフォルダーのバックアップを作成する場合は、次のようにします。

  • テーブルを無効にします: (シェルから: disable 'tableName')
  • ファイルのコピー: hadoop fs -cp /hbase/tableName /hbase-backup/tableName
  • テーブルを有効にします: (シェルから: enable 'tableName')

CopyTable...またはExportツール ( http://hbase.apache.org/book/ops.backup.html )を使用できます。

于 2012-12-04T16:19:07.543 に答える
1

hbase DB 全体を移行するため、一括無効化を実行することをお勧めします。

disable_all '.*'

これにより、hbase は強制的に memstore をフラッシュし、すべてを HFiles に書き込みます。また、無効にした後でも の下にいくつかの WAL が表示されることに気付くでしょうが/hbase/WALs、心配しないでください。hbase には、HFiles にフラッシュした後でもしばらくの間 WAL を保持する WAL ttl があるからです。
「フラッシュが完了したことを確認する方法」という質問に答えるには
、Hbase UI -> Regions -> Memoryに移動し、すべて「0」であることを確認して
ください。Memstore Size

于 2017-02-14T16:54:37.117 に答える