Region 수는 보통 Region Server 당 100개 정도가 적당하다. HBase 의 region 수를 작게 하는대에는 아래와 같은 이유가 있다.
1. MSLAB (MemStore-local allocation buffer) 때문인데, MemStore 하나당 2MB 를 필요로 한다. 그래서 예를 들면, 1000개의 region 과 2 개의 column family 를 가진다고 가정하면 저장을 하지 않았는데도, 대략 3.9 GB 의 heap 공간이 필요하다.
2. 많은수의 region 은 대량의 Compaction 을 유발하기 때문이다.
3. HBase master 서버는 많은수의 region 에 대해서 민감하다. 이렇게 많은 수의 region 때문에 region 을 할당하고 이동시키는데 많은 시간을 사용하게 만든다. 이것은 Zookeeper 를 심하게 사용하기 때문이다.
4. HBase 의 구버전 (0.9 이하) 에서는 대량의 region 이 소수의 region server 에 분포해 있으면 store file index 를 증가시킨다. 이것은 heap 사용량을 증가시키기 때문에 region serverOOME 를 유발하게 된다.
참고: http://hbase.apache.org/book.html#too_many_regions
'Programming > HBase' 카테고리의 다른 글
HBase rolling restart (0) | 2016.12.01 |
---|---|
HBase ACID Reference (0) | 2015.12.16 |