2012-08-22 3 views
0

프로덕션 환경의 hbase 스키마에는 5 개의 테이블이 있습니다. 우리는 클라이언트의 10 %만이 주어진 순간에 활성화되는 N 개의 클라이언트를 가지고 있습니다. 그래서 저에게는 남은 90 % 고객의 데이터를 유지하는 데 리소스 낭비처럼 보입니다. 나는 활성 클라이언트의 테이블을 사용 가능하게 유지하고 나머지 클라이언트의 테이블을 사용할 수 있도록 클라이언트 당 5 개의 테이블을 작성하려고합니다. 지역 서버 당 1000 개의 지역을 초과하면 읽은 것부터 성능이 저하되기 시작합니다. 그러나 나는 그 한계에 부딪치지 않을 것이라고 확신한다. 내 질문hbase의 테이블 개수 제한 및 성능에 미치는 영향

  1. 테이블 세트를 비활성화하면 hbase에 대한 부하가 줄어 듭니다.
  2. 전체적으로 건전한 전략 인 것 같습니까?

답변

0

공연에 대한 기대치는 어떻습니까?

어떤 클라이언트가 활성/비활성인지 어떻게 결정하겠습니까?

비활성 클라이언트에 대해 사용되지 않는 테이블을 자동으로 비활성화 하시겠습니까?

그러면 읽기에 대한 액세스 패턴은 무엇입니까? 고객이 단일 테이블에서만 데이터를 읽습니까?

몇 가지 문제에 테이블 결과를 많이 취급 :

  • 이상의 영역을, 한 테이블에 데이터가없는 경우에도, -at 이내로 할 1 지역으로 구성되어있다. HBase는 더 활동적인 StoreFiles 등을 처리해야합니다.
  • 디스크 (HFile)에 정기적으로 플러시되지 않기 때문에 (구성된 임계 값에 도달하는 경우에만) memstore (예 : 메모리 사용)가 더 많습니다.
+0

고객이 나는 고객을 의미합니다. 나는 고객이 내 앱에 액세스 할 때와 액세스 할 때에 대한 사전 지식을 갖고있다. 이것은 자바를 통해 테이블을 비활성화하거나 수동으로 할 수있는 단순한 경우에 도움이 될 것입니다. 읽기에 대한 액세스 패턴은 클라이언트가 각각의 5 개 테이블에서 제공되는 데이터가된다는 것입니다. 테이블을 비활성화하면 hbase의 리소스 요구 사항 (예 : 힙 등)이 줄어 듭니까? – user1383817

+0

당신이 언급 한 두 가지 문제는 그 테이블을 활성화 상태로 유지할 때만 발생한다고 생각합니다. 다음 두 달 내에 일련의 테이블에 액세스 할 수 없다는 것을 알고 있으면 해당 테이블을 비활성화하고 일부 리소스를 절약 할 수 있습니까? – user1383817

관련 문제