2017-12-13 40 views
0

HBase 기반 시스템에서 매일 수백만 개의 행을 프로덕션 환경에서 대량로드하려고합니다. 우리는 HBase Bulk Load이 puts에 비해 좋은 옵션이라고 생각합니다. 대량로드 기능은 MapReduce 작업을 사용하여 HBase의 내부 데이터 형식으로 테이블 데이터를 출력 한 다음 생성 된 StoreFiles를 실행중인 클러스터에 직접로드합니다. 대량로드를 사용하면 단순히 HBase API를 사용하는 것보다 적은 CPU 및 네트워크 리소스가 사용됩니다. 우리는 이것을 평가했으며 정상적으로 작동합니다. 참조 가이드의 다음 섹션에서는 제한 사항에 대해 설명합니다.HBASE 대량로드 복제

72.2. Bulk Load Limitations 대량로드로 인해 쓰기 경로가 무시되므로 WAL은 프로세스의 일부로 기록되지 않습니다. 복제는 대량로드 된 데이터를 볼 수 없도록 WAL 파일을 읽는 방식으로 작동하며 Put.setDurability (SKIP_WAL)를 사용하는 편집에도 동일하게 적용됩니다. 이를 처리하는 한 가지 방법은 원시 파일 또는 HFiles를 다른 클러스터로 보내고 다른 처리를 수행하는 것입니다.

고 가용성을 사용하려는 경우 큰 문제입니다. 우리는 또한 복제가 수정 된 후에 작동 함을 제안하는 다른 JIRA HBASE-13153을 발견했습니다.

질문 :

  1. 이 대량로드 생산 사용하기위한 것입니다?
  2. HBase 설명서가 오래되어 제한 사항이 지금 해결 되었습니까?
  3. 대량로드를 사용하는 데 다른 제한 사항이 있습니까? 그렇다면 선호되는 접근 방식은 무엇입니까?

답변

0
  1. 예. 많은 사용자가 프로덕션 환경에서 대량로드를 사용합니다.
  2. HBASE-13153 이후에도 제한이 없다고 언급했습니다. 그러나 문제의 릴리스 노트를 참조하십시오. 기본적으로이 기능은 해제되어 있습니다. 작동하도록 구성해야합니다. 그리고 대량로드 된 파일도 피어 클러스터로 복제됩니다. 그래, 의사가 구식이야. 곧 그 문제가 해결 될거야. 또한 수정 버전을 참조하십시오. 그에 따라 버전을 선택해야합니다.
  3. 기타 제한 사항 : 보안 (ACL)을 사용해야합니까? 그렇다면 대량로드에 필요한 ACL은 WRITE 권한뿐만 아니라 table/CF에 대한 CREATE 권한입니다. 그 점을 명심하십시오. 이것은 제한이 아니라 단지 말하는 것입니다. 벌크로드에는 몇 가지 결함이 있지만 1.3+ 버전에서는 이미 수정해야합니다.

대량로드 방식으로 데이터 쓰기를 시도해 볼 수 있으며 사용 사례에 가장 적합한 것으로 보입니다.