2017-01-11 19 views
5

HBase(HDaseとして基盤となるデータストアを持つHBase 1.1.2としてサーバーでクライアントで0.98)を使用していますか。HBaseのテーブルをフラッシュする方法

次のコードを使用してテーブルをフラッシュしようとしましたが、HadoopでHFileの場所にフラッシュされたデータを見ることができました。 Hadoopの

./hadoop fs -du /hbase/data/default/tableName/ 

  htable.put(puts); 
      htable.close(); 
      admin.flush(tableName); 

データの場所私は電源がシャットダウンし、ノードを再起動しない場合は、HadoopのとHBaseのデータはHDFSに壊れてしまった見ることができています再起動。

データがHFileに正しくフラッシュされている場合、電源遮断時にデータが破損する理由を教えてください。

テーブルをフラッシュするコードを変更する必要がありますか?

おかげで、 ハー

+0

いくつかの質問:1.クラスタまたは単一ノードのインストールですか? 2.マシンの電源を切る前に、ネームノードサービスを正常にシャットダウンしていますか? 3.データが壊れていることをどのように知っていますか? – Venkat

答えて

0

は、私はその数年前のようなものを持って、それはsync problemによるものでした。私はその解決策を見ることができます。 Hereは、put操作のシーケンス図を含む別の説明です。

あなたのケースではどうなりますか?おそらく、そのputは非常に小さく、メモリーストレージで終わります。HFileではなく、「破損している」かどうかをチェックします。

25 MB以上を書き込もうとします。これは、hadoopのページサイズであり、すべての書き込みがトリガーされるためです。そうすれば、他の問題を単純に排除することができます。それが機能すれば、ポリシーを保存して遊ぶことも、もっと待つこともできます。愚かなアドバイスですが、通常のシステムではより多くの書き込みが行われるため、HFileへの完全な書き込みがとにかく起動されることに注意してください。他のオプションはそれを強制することですが、あなたの生産はあまりにも多くの書き込みで悪くなる可能性があります。

関連する問題