IT 삽질기

HBase 튜닝하기 본문

BigData/HBase

HBase 튜닝하기

화이팅빌런 2021. 3. 7. 18:06

하둡 클러스터 운영중 HBase read/write 관련 성능 이슈 발생

일부 HBase 옵션 변경으로 문제를 해결하였는데 리서치 결과와 성능 변경사항에 대해 정리

 

hbase.client.write.buffer
클라이언트에서 서버로 데이터 전송을 할 때 사용되는 버퍼

 

hbase.regionserver.handler.count
region 서버에서 데이터 처리를 위해 사용되는 thread 수

 

hbase.hregion.memstore.flush.size
MemStore가 이 크기 이상을 가지면 flush 진행

 

hbase.regionserver.global.memstore.upperLimit
region 서버의 힙영역에서의 MemStore의 크기 비율로 이 크기를 넘기면 MemStore에 쓰기를 차단하고 강제로 flush

크기가 클수록 write 성능에 좋음

 

hbase.hregion.max.filesize
HStoreFile의 최대 크기

HStoreFile 중 하나라도 이 값을 초과하면 호스팅 HRegion이 두 개로 분할된다.

 

hbase.hstore.blockingStoreFiles
한 HStore에 이 수보다 많은 HStoreFile이 있을 경우, 압축이 완료될 때까지 또는 'hbase.hstore.blockingWaitTime'에 지정된 값이 초과될 때까지 이 HRegion에 대한 업데이트가 차단된다.
값이 클수록 write 성능에 좋음

 

hbase.client.scanner.caching

스캐너 동작 시 한번에 가지고 올 row 수

 

hbase.rpc.timeout
rpc 요청시 timeout 시간 (ms)

 

성능 향상을 위해 변경한 설정은 아래와 같다

hbase.regionserver.handler.count
30 -> 100

hbase.rpc.timeout
90000 -> 180000

 

hbase regionserver에서 응답속도가 느리고 rpc time이 발생하는 점을 고려하여

regionserver에서 데이터 처리를 많이 할 수 있도록 handler.count 수를 늘리고

간헐적으로 발생하던 rpc.timeout현상을 줄이기 위해 hbase.rpc.timeout까지 걸리는 시간을 늘렸다

 

특정 regionserver에 요청이 몰리는 경우 서버에 부하가 발생할 가능성이 있었지만

서버의 리소스를 모니터링한 결과 리소스에는 여유가 있는 것으로 보여 일차적으로 위의 설정만 변경하여 테스트

 

설정 변경 후 지연 시간이 줄어 정상적으로 동작하였으며, 특정 region에 데이터가 몰리는 현상을 확인한 이후에는 밸런싱 작업을 진행하여 read/write 관련 작업에서 지연이 발생하지 않았음

 

Balance 작업에는 kakao에서 개발한 hbase tools를 활용

tech.kakao.com/2016/03/24/opensource-4-hbase-tools/

 

 

참고자료

kysepark.blogspot.com/2016/08/hbase-write.html

engineering.vcnc.co.kr/2013/04/hbase-configuration/

'BigData > HBase' 카테고리의 다른 글

HBase 데이터 쓰기/읽기 과정  (0) 2021.05.15
HBase tools를 이용한 HBase balancing  (0) 2021.03.10
HBase 테이블별 용량 확인  (0) 2019.04.27
HBase란 - HBase 용어 정리  (0) 2019.03.20
HBase란 - HBase의 특징과 장단점  (0) 2019.03.18
Comments