복붙노트

[HADOOP] HBase : 원자 적 '체크 행이 존재하지 않고 작성'조작

HADOOP

HBase : 원자 적 '체크 행이 존재하지 않고 작성'조작

이것이 일반적인 경우 중 하나 여야한다고 생각하지만 인터넷 검색시 잘못된 키워드를 사용했을 수 있습니다.

완전히 임의의 키로 새 테이블 레코드를 만들어야합니다. 무작위성이 좋은 키를 얻었다 고 가정하십시오 (거의 무작위). 그러나 아직 행이 존재하지 않는다는 것을 100 % 확신 할 수는 없습니다. 그래서 내가 원자 적으로해야 할 일 :

이 주제에서 찾은 가장 유용한 정보는 HBase 행 잠금에 대한 기사입니다. HBase 행 잠금을 적합한 솔루션으로 생각하지만 명시 적 행 잠금없이 더 나은 방법을 원합니다.

누군가 유용한 조언을 추가해 주시겠습니까? 바람직한 API는 Java 기반이지만 실제로는 구현보다는 개념에 관한 것입니다.

해결법

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

    1.이 경우 '충분히 좋은'솔루션은 checkAndPut () 메소드를 기반으로했습니다. 내가하려는 것은 키 복제 검사를 통한 새로운 행 삽입이며 개별 인서트 솔루션은 완벽합니다.

    이 경우 '충분히 좋은'솔루션은 checkAndPut () 메소드를 기반으로했습니다. 내가하려는 것은 키 복제 검사를 통한 새로운 행 삽입이며 개별 인서트 솔루션은 완벽합니다.

    글쎄, 대량 삽입 (실제로 필요한 것)의 경우 너무 느려서 새 행 삽입을 확인하지 않고 행 키로 사용되는 UUID로 옮겼습니다. 나를 위해 훨씬 낫다. 이 경우 유일한 고려 사항은 정말 좋은 랜덤 생성기입니다. 표준 Java java.util.UUID 클래스에는 느리지 만 매우 강력한 java.security.SecureRandom 생성기를 기반으로 포함하여 필요한 모든 것이 포함되어 있습니다.

    참고 사항 : 보안 / 기타 사용과 관련된 위험으로 인해 HBase 사용자 행 잠금 기능이 삭제되는 것처럼 보입니다.

  2. from https://stackoverflow.com/questions/16400393/hbase-atomic-check-row-does-not-exist-and-create-operation by cc-by-sa and MIT license