본문 바로가기

Programming/HBase

HBase 에서 region 수를 작게 해야 하는 이유

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