HBase 성능 튜닝 (시스템)
- Garbage Collection
- 마스터 서버는 무관하며, 리전 서버
중 MemStore에서 디스크로 Flush된 후 메모리 상
빈 공간이 듬성듬성 생김 - 128MB로 시작하여 모니터링에 따라 부하가 심한 리전 서버는 상향 조정
- 압축
- 사용하지 말아야 할 특별한 이유가 없다면 무조건 사용을 권장
- GZIP for Cold data / Snappy or LZO for Hot data
- 압축/해제에 따른 CPU 부하가 디스크에서 많은 데이터를 읽어야하는 오버헤드보다 적음
- 리전 분할 관리
- 일정하게 리전 크기가 증가하면 동시다발적 분할로 디스크 입출력 부하가 급증할 수 있음
- 적은 개수에서 임계 파일 크기에 따라 적당한 키 값 범위로 단계적 분할을 수행하는 것이 좋으며, 이는 자동으로 수행하는 설정을 권장함
- BusyRegionSplitPolicy, ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy, DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy, and SteppingSplitPolicy
HBase 성능 튜닝 (클라이언트 API)
- 대량 쓰기 연산을 수행할 때는 setAutoFlush(false)
- 스캐너 캐시를 사용하라
- 꼭 필요한 컬럼, 컬럼 Qualifier로 스캔 범위를 제한하라
- 항상 finally로 ResultScanner를 닫자
- 블록 캐시를 사용하라
- 스캔 시 Row Key 값만 필요하다면 Filter 시 MUST_PASS_ALL 설정 후 스캔
- Bulk Loading 시 약간의 위험을 감수할 수 있다면, Put 객체의 WAL을 끄자
- 읽기 연산이 많으면 MemStore 감소 / 블록 캐시 증가
- 쓰기 연산이 많으면 블록 캐시 감소 / MemStore 증가
- 쓰기 부하가 많은 경우 WAL 개수를 줄여 디스크에 더 자주 flush하도록 설정
HBase 모니터링
- 모니터링 도구
- Ganglia: HBase에서 제공하는 도구
- Nagios: HBase 프로세스들과 연동된 JMX 기반 도구
- 측정 지표
- Master 지표: 클러스터 요청 총 수, WAL 파일 분할 시간, 분할 크기
- BlockCache 지표: 블록개수, 캐시크기, 가용공간, 삭제된 블록 등
- Compaction 지표: 컴팩션 크기, 컴팩션 시간, 컴팩션 큐 크기
- MemStore 지표: 멤스토어 크기, 플러시 큐 크기, 플러시 시간 등
- Store 지표: Store file 수, Store 수 등
- I/O 지표: 파일시스템 읽기/쓰기/동기화 응답시간
- 기타 지표: 읽기/쓰기 요청 수, 요청 수, 온라인 상태 리전 수
- 기타 오픈소스 도구
'Development > Hadoop' 카테고리의 다른 글
HBase Region Split Policy (0) | 2019.01.30 |
---|---|
HBase 공부 - Scan, Filter (0) | 2019.01.24 |
HBase 공부 - HBase의 특징과 구조 (1) | 2019.01.24 |
하둡 공부 - Yarn Scheduler (0) | 2019.01.24 |
하둡 공부 - Apache Hadoop 3.0.0 (0) | 2019.01.24 |