2013-03-18 3 views
0

Я хотел наблюдать практически Как Восстановительные работы в HBase, я использовал следующий фрагмент кодаКак Recovery работает в 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, когда я просмотрел эту таблицу, имя Rowkey10 не появилось. Где как, когда я правильно остановлен экземпляр HBase и перезапустил VM, он отлично показывает (поскольку из MemStore HBase подталкивал данные в таблицы HBase).
Хотя мой WAL был включен, почему он не в состоянии восстановиться. Есть ли какие-то ошибки в моем понимании?
Где будут храниться файлы WAL? Я использую HBase поверх своей локальной файловой системы вместо HDFS .... Где я могу проверить файлы WAL?

ответ

0

Файлы WAL хранятся в папке .logs (скрыто). В автономном режиме потребуется время для записи в WAL, где, как и в Pseudo Distributed mode, он будет работать нормально

0

Просто попробуйте:

После помещения данных в таблицу. Запустите «flush tablename» из оболочки hbase. затем уточните

+0

Thanx для ответа .... «flush tablename» отлично работает ... поскольку «flush tablename» похоже на закрытие HBase должным образом ... Я хотел проверить восстановление из WAL, если мы не будем флешивать или останавливать HBase правильно ... У вас есть идея, где файлы журнала будут храниться в локальной файловой системе и как читай их? – Rohit

+0

Я надеюсь, что он хранится в каталоге hbase.rootdir/.logs. hbase.rootdir - это каталог, который вы настроили в hbase-site.xml –

+0

Я получил это, как их прочитать? – Rohit