2017-10-07 2 views
0

HBase 테이블을 디자인했습니다. 여기서는 rowkey이 실행해야하는 쿼리로 구동됩니다. 베스트 프랙티스에 따라 해시 부분을 내 행키의 접두사로 포함하여 테이블 영역 전체에 가능한 한 균일 한 행을 펼치려고했습니다.HBase에서 효율적으로 쿼리하는 전략

나는 다음과 같은 시나리오에 대한 걱정 :

나는 3 개 지역간 내 HBase를 테이블 분할의 행 수십억을 얻었다. 이 테이블을 사용하여 REST API에 대한 데이터를 제공하므로 가능한 한 빨리 행을 제공해야합니다.

불행하게도, 나는 내가 HBase와 쉘 또는 startrowstoprow parameters.It을 포함한 다른 스캔 중 count "table_name"를 호출 할 경우에도 유명한 시간 초과 오류 Failed to get result within timeout, timeout=60000ms을 치는거야하면 rowkey를 사용하여 범위로 검색 전체 HBase를 테이블을 휩쓸고 보인다 .

내가 좋아하는 것이 시나리오는이 개 질문을 고려 :

1) 정말 시간 초과 오류를 타격하지 않고 가능한 한 빨리 행의 범위를 검색 할 수있는 전략이 있습니까? 나는 정말 여기에 어떤 포인터를 주셔서 감사합니다.

2) HBase가 처음이므로 HBase가 REST API에 빠른 검색 데이터를 제공하기위한 최선의 해결책이라고 생각하십니까? 실제로 검색은 행키 범위를 기준으로 검사합니다.

답변

1
  1. 증가 지역 서버
  2. 의 수는 지역 서버 당 지역의
  3. 수는 매우 빠른 응답보다 50되지 더 순서이어야한다 지역의 수를 늘립니다.
  4. 가능한 경우 클러스터의 모든 데이터 노드에서 영역 서버를 생성하십시오. 영역 서버를 독립적으로 실행하지 마십시오.

데이터 크기가 크지 않은 경우 get 및 put에 밀리 초 대기 시간을 제공하므로 API에 가장 적합한 Aerospike를 사용해 볼 수 있습니다.

자세한 내용은 Hbase을 참조하십시오. http://bytepadding.com/hbase/

관련 문제