2013-03-18 88 views
0

我想觀察實際如何恢復的工作原理在HBase的,我已經使用的代碼恢復如何在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); 

下面的代碼片段執行上面的代碼我重新啓動後的VM (不停止HBase的)我並啓動了HBase,當我通過這張表掃描Rowkey name10時沒有出現。其中如,當我正確停止 HBase的實例和重啓VM,這是完全示出了(由於從那種MEMSTORE HBase的推入數據HBase的表)。
雖然我的WAL啓用了它無法恢復的原因。我的理解有錯嗎?
凡將在WAL文件存儲?我現在用的HBase在我的本地文件系統,而不是HDFS的頂部....我在哪裏可以檢查WAL文件?

回答

0

WAL文件被存儲在文件夾.logs(隱藏)。在單機模式下它會需要一段時間才能進入WAL,其中在僞分佈式模式下,它會正常工作

0

試試這個:

將數據放入表格後。 從hbase shell運行「flush tablename」。 然後檢查

+0

thanx的答覆......「刷新表名」工作正常......因爲,「刷新表名」類似於正確關閉HBase ...我想檢查從WAL恢復,如果我們不會正確地刷新或停止HBase ...你有一個想法,日誌文件將存儲在本地文件系統,以及如何閱讀他們? – Rohit 2013-03-19 07:03:32

+0

我希望它存儲在hbase.rootdir/.logs目錄中。 hbase.rootdir是你在hbase-site.xml中配置的目錄 – 2013-03-19 07:49:41

+0

我明白了,如何閱讀它們? – Rohit 2013-03-19 08:54:29