hbtop

hbtop

HBase의 리소스 모니터링 도구인 hbtop을 설명하는 페이지예요. top 명령처럼 화면을 갱신하며 Region/Namespace/Table/RegionServer 단위 메트릭을 실시간으로 보여줘요. 핫 영역(hot region)을 빠르게 찾을 때 유용합니다.

출처: 문서

본문

사용법 (Usage)

hbtop은 다음 명령으로 실행할 수 있어요.

$ hbase hbtop

이 경우 클래스패스의 hbase-site.xml에 있는 hbase.client.zookeeper.quorum과 zookeeper.znode.parent 값이나 그것들의 기본값을 사용해 연결해요.

또는 다음과 같이 자신만의 zookeeper quorum과 znode parent를 지정할 수 있어요.

$ hbase hbtop -Dhbase.client.zookeeper.quorum= -Dzookeeper.znode.parent=

top 화면은 요약(summary) 부분과 메트릭(metrics) 부분으로 구성돼요. 요약 부분에서는 HBase Version, Cluster ID, The number of region servers, Region count, Average Cluster Load, Aggregated Request/s를 볼 수 있어요. 메트릭 부분에서는 선택한 모드에 따라 Region/Namespace/Table/RegionServer별 메트릭을 볼 수 있어요. top 화면은 일정 주기(기본 3초)로 갱신돼요.

메트릭 레코드 스크롤 (Scrolling metric records)

메트릭 부분의 메트릭 레코드를 스크롤할 수 있어요.

커맨드라인 인자 (Command line arguments)

Argument Description
-d,--delay 새로고침 지연(초 단위); 기본 3초
-h,--help 사용법 출력; 도구 실행 중 도움말은 h 키를 눌러요
-m,--mode 모드; n (Namespace) | t (Table) | r (Region) | s (RegionServer), 기본 r
-n,--numberOfIterations 반복 횟수
-O,--outputFieldNames 각 사용 가능한 필드 이름을 별도 줄로 출력한 뒤 종료
-f,--fields 주어진 필드만 표시. 여러 필드는 쉼표로 구분해 지정
-s,--sortField 초기 정렬 필드. 필드 이름 앞에 +나 -를 붙여 정렬 방향을 오버라이드할 수 있음. +는 높은 값에서 낮은 값으로, -는 낮은 값에서 높은 값으로 강제
-i,--filters 초기 필터. 여러 필터는 쉼표로 구분해 설정
-b,--batchMode hbtop을 Batch 모드로 시작. hbtop의 출력을 다른 프로그램이나 파일로 보낼 때 유용. 이 모드에서 hbtop은 입력을 받지 않으며 -n 옵션으로 설정한 반복 한도까지 또는 종료될 때까지 실행

모드 (Modes)

hbtop에는 다음 모드가 있어요.

Mode Description
Region region별 메트릭 레코드 표시
Namespace namespace별 메트릭 레코드 표시
Table table별 메트릭 레코드 표시
RegionServer region server별 메트릭 레코드 표시
User user별 메트릭 레코드 표시
Client client별 메트릭 레코드 표시

Region 모드 (Region mode)

Region 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
RNAME Region Name false
NAMESPACE Namespace Name true
TABLE Table Name true
SCODE Start Code false
REPID Replica ID false
REGION Encoded Region Name true
RS Short Region Server Name true
LRS Long Region Server Name false
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#FREAD/S Filtered Read Request Count per second true
#WRITE/S Write Request Count per second true
SF StoreFile Size true
USF Uncompressed StoreFile Size false
#SF Number of StoreFiles true
MEMSTORE MemStore Size true
LOCALITY Block Locality true
SKEY Start Key false
#COMPingCELL Compacting Cell Count false
#COMPedCELL Compacted Cell Count false
%COMP Compaction Progress false
LASTMCOMP Last Major Compaction Time false

Namespace 모드 (Namespace mode)

Namespace 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
NAMESPACE Namespace Name true
#REGION Region Count true
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#FREAD/S Filtered Read Request Count per second true
#WRITE/S Write Request Count per second true
SF StoreFile Size true
USF Uncompressed StoreFile Size false
#SF Number of StoreFiles true
MEMSTORE MemStore Size true

Table 모드 (Table mode)

Table 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
NAMESPACE Namespace Name true
TABLE Table Name true
#REGION Region Count true
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#FREAD/S Filtered Read Request Count per second true
#WRITE/S Write Request Count per second true
SF StoreFile Size true
USF Uncompressed StoreFile Size false
#SF Number of StoreFiles true
MEMSTORE MemStore Size true

RegionServer 모드 (RegionServer mode)

RegionServer 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
RS Short Region Server Name true
LRS Long Region Server Name false
#REGION Region Count true
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#FREAD/S Filtered Read Request Count per second true
#WRITE/S Write Request Count per second true
SF StoreFile Size true
USF Uncompressed StoreFile Size false
#SF Number of StoreFiles true
MEMSTORE MemStore Size true
UHEAP Used Heap Size true
MHEAP Max Heap Size true

User 모드 (User mode)

User 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
USER user Name true
#CLIENT Client Count true
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#WRITE/S Write Request Count per second true
#FREAD/S Filtered Read Request Count per second true

Client 모드 (Client mode)

Client 모드에서 기본 정렬 필드는 #REQ/S예요.

이 모드의 필드는 다음과 같아요.

Field Description Displayed by default
CLIENT Client Hostname true
#USER User Count true
#REQ/S Request Count per second true
#READ/S Read Request Count per second true
#WRITE/S Write Request Count per second true
#FREAD/S Filtered Read Request Count per second true

모드 변경 (Changing mode)

top 화면에서 m 키를 눌러 모드를 변경할 수 있어요.

새로고침 지연 변경 (Changing the refresh delay)

top 화면에서 d 키를 눌러 새로고침을 변경할 수 있어요.

표시 필드 변경 (Changing the displayed fields)

top 화면에서 f 키를 눌러 필드 화면으로 이동할 수 있어요. 필드 화면에서 필드를 선택하고 d 키나 space 키를 눌러 표시 필드를 변경할 수 있어요.

정렬 필드 변경 (Changing the sort field)

top 화면에서 f 키를 눌러 필드 화면으로 이동할 수 있어요. 필드 화면에서 필드를 선택하고 s를 눌러 정렬 필드를 변경할 수 있어요. 또한 R 키를 눌러 정렬 순서(오름차순·내림차순)를 변경할 수 있어요.

필드 순서 변경 (Changing the order of the fields)

top 화면에서 f 키를 눌러 필드 화면으로 이동할 수 있어요. 필드 화면에서 필드의 순서를 변경할 수 있어요.

필터 (Filters)

필터 기능으로 메트릭 레코드를 필터링할 수 있어요. 대소문자 무시는 o 키, 대소문자 구분은 O 키로 필터를 추가할 수 있어요.

구문은 다음과 같아요.

예를 들어 다음과 같은 필터를 추가할 수 있어요.

NAMESPACE==default REQ/S>1000

지정할 수 있는 연산자는 다음과 같아요.

Operator Description
= Partial match
== Exact match
> Greater than
>= Greater than or equal to
< Less than
<= Less than and equal to

^o 키를 눌러 현재 필터를 볼 수 있고, = 키로 지울 수 있어요.

드릴다운 (Drilling down)

드릴다운하고 싶은 메트릭 레코드를 선택하고 top 화면에서 i 키를 눌러 메트릭 레코드를 드릴다운할 수 있어요. 이 기능으로 top-down 방식으로 핫 region을 쉽게 찾을 수 있어요.

도움말 화면 (Help screen)

top 화면에서 h 키를 눌러 도움말 화면을 볼 수 있어요.

기타 (Others)

hbtop이 메트릭 데이터를 얻는 방법 (How hbtop gets the metrics data)

hbtop은 현재 HMaster에 대한 Admin#getClusterMetrics() 호출 결과로 반환되는 ClusterMetrics에서 메트릭을 얻어요. hbtop에 메트릭을 추가하려면 그것들이 ClusterMetrics를 통해 노출되어야 해요.

더 알아보기 (Learn more)