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=
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를 통해 노출되어야 해요.