복붙노트

[HADOOP] HBase를 회복

HADOOP

HBase를 회복

HBase를 단일 행 원자 트랜잭션을 지원합니다. 실제적으로 그것을 확인하십시오. 나는 다음과 같은 코드를 작성했다

    Increment inc=new Increment();//For writing it to WAL
    inc.getWritetoWAL(); 
    Put p = new Put(Bytes.toBytes("name10"));
    p.add(Bytes.toBytes("cf"), Bytes.toBytes("name"),Bytes.toBytes("Some Value 10"));
    table.setAutoFlush(false);
    table.put(p);
    table.close();

바로 전 새로운 행이 표에 업데이트되지 않는다 HBase를 다시 시작시 (이클립스 디버깅)에 table.put (p)를 실행 한 후 내가 HBase를 중단 한 회수를 확인하기 위해. HBase와의 설명서에 따라 그것은 충돌이 발생하지만 여기 WAL이 활성화되었지만이 회복되지 비록 그것을 복구 할 수 memstore (캐시)에 기록되면 ..... 나의 이해에 어떤 ​​잘못이 있는가 ..... 답장에 미리 고맙습니다 .....

해결법

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

    1.무엇 위의 코드 발생하면 클라이언트가 결코 HBase를 결코하지 그것을 복구 할 수있는 WAL에 기록되지 않도록 서버에 넣어 제출 얻을 수 없다는 것입니다 ...

    무엇 위의 코드 발생하면 클라이언트가 결코 HBase를 결코하지 그것을 복구 할 수있는 WAL에 기록되지 않도록 서버에 넣어 제출 얻을 수 없다는 것입니다 ...

    당신은 넣어 위의 라인 (false)를 table.setAutoFlush 있습니다. 당신이 문서를 체크 아웃 경우는 말한다 :

    일반적으로 false로의 autoflush를 설정하는 동안 것은이 경우에 좋다 그래서 풋 아직 서버로 전송되지 않습니다 것을 의미합니다.

  2. from https://stackoverflow.com/questions/15427857/recovery-in-hbase by cc-by-sa and MIT license