복붙노트

[HADOOP] HBase에서 복구가 어떻게 작동합니까?

HADOOP

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);

위의 코드를 실행 한 후 HBase를 중지하지 않고 내 VM을 다시 시작하고 HBase를 시작했습니다.이 테이블을 통해 검색하면 Rowkey name10이 표시되지 않습니다. 어디에서 제대로 HBase 인스턴스를 중지하고 VM을 다시 시작하면 (MemStore에서 HBase가 HBase 테이블에 데이터를 푸시 했으므로) 완벽하게 표시됩니다.       하지만 WAL을 사용할 수있게 된 이유는 복구 할 수 없었기 때문입니다. 내 이해에 어떤 ​​잘못이 있니?    WAL 파일은 어디에 저장됩니까? HDFS 대신 로컬 파일 시스템에서 HBase를 사용하고 있습니다 ... 어디에서 WAL 파일을 확인할 수 있습니까?

해결법

  1. ==============================

    1.그냥 시도해보십시오.

    그냥 시도해보십시오.

    테이블에 데이터를 넣은 후. hbase 쉘에서 "flush tablename"을 실행하십시오. 확인한 다음

  2. ==============================

    2.WAL 파일은 .logs 폴더에 저장됩니다 (숨김). 독립 실행 형 모드에서는 WAL에 쓰는 데 시간이 걸리며 의사 배포 모드에서는 잘 작동합니다.

    WAL 파일은 .logs 폴더에 저장됩니다 (숨김). 독립 실행 형 모드에서는 WAL에 쓰는 데 시간이 걸리며 의사 배포 모드에서는 잘 작동합니다.

  3. from https://stackoverflow.com/questions/15470122/how-recovery-works-in-hbase by cc-by-sa and MIT license