0

HBaseでリカバリがどのように機能するかを実際に観察したかったので、次のコードスニペットを使用しました

    Put p=new Put(Bytes.toBytes("name10"));
    p.setWriteAheadLog(true);
    p.add(Bytes.toBytes("cf"), Bytes.toBytes("name"),Bytes.toBytes("Some Value 10"));
    table.setAutoFlush(true);
    table.put(p);

上記のコードを実行した後、 (HBaseを停止せずに) VMを再起動し、HBaseを起動しましたが、このテーブルをスキャンしたときに、Rowkeyname10が表示されませんでした。一方、HBaseインスタンスを適切に停止してVMを再起動すると、完全に表示されます(MemStoreからHBaseがデータをHBaseテーブルにプッシュしたため)。
しかし、私のWALは、なぜ回復できないのか有効になっています。私の理解に何か問題はありますか?
WALファイルはどこに保存されますか?HDFSの代わりにローカルファイルシステム上でHBaseを使用しています.... WALファイルはどこで確認できますか?

4

2 に答える 2

0

これを試してください:

table にデータを入れた後。hbase シェルから「 flush tablename 」を実行します。次にチェック

于 2013-03-19T06:33:15.133 に答える
0

WAL ファイルは .logs フォルダー (非表示) に保存されます。スタンドアロン モードでは WAL への書き込みに時間がかかりますが、疑似分散モードでは問題なく動作します。

于 2013-04-02T10:23:34.840 に答える