249 lines
8.5 KiB
Markdown
249 lines
8.5 KiB
Markdown
|
<!---
|
|||
|
Licensed to the Apache Software Foundation (ASF) under one
|
|||
|
or more contributor license agreements. See the NOTICE file
|
|||
|
distributed with this work for additional information
|
|||
|
regarding copyright ownership. The ASF licenses this file
|
|||
|
to you under the Apache License, Version 2.0 (the
|
|||
|
"License"); you may not use this file except in compliance
|
|||
|
with the License. You may obtain a copy of the License at
|
|||
|
|
|||
|
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|
|||
|
Unless required by applicable law or agreed to in writing,
|
|||
|
software distributed under the License is distributed on an
|
|||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|||
|
KIND, either express or implied. See the License for the
|
|||
|
specific language governing permissions and limitations
|
|||
|
under the License.
|
|||
|
-->
|
|||
|
|
|||
|
# hbtop
|
|||
|
|
|||
|
## Overview
|
|||
|
|
|||
|
`hbtop` is a real-time monitoring tool for HBase like Unix's top command.
|
|||
|
It can display summary information as well as metrics per Region/Namespace/Table/RegionServer.
|
|||
|
In this tool, you can see the metrics sorted by a selected field and filter the metrics to see only metrics you really want to see.
|
|||
|
Also, with the drill-down feature, you can find hot regions easily in a top-down manner.
|
|||
|
|
|||
|
## Usage
|
|||
|
|
|||
|
You can run hbtop with the following command:
|
|||
|
|
|||
|
```
|
|||
|
$ hbase hbtop
|
|||
|
```
|
|||
|
|
|||
|
In this case, the values of `hbase.client.zookeeper.quorum` and `zookeeper.znode.parent` in `hbase-site.xml` in the classpath or the default values of them are used to connect.
|
|||
|
|
|||
|
Or, you can specify your own zookeeper quorum and znode parent as follows:
|
|||
|
|
|||
|
```
|
|||
|
$ hbase hbtop -Dhbase.client.zookeeper.quorum=<zookeeper quorum> -Dzookeeper.znode.parent=<znode parent>
|
|||
|
```
|
|||
|
|
|||
|
![Top screen](img/top_screen.gif "Top screen")
|
|||
|
|
|||
|
The top screen consists of a summary part and of a metrics part.
|
|||
|
In the summary part, you can see `HBase Version`, `Cluster ID`, `The number of region servers`, `Region count`, `Average Cluster Load` and `Aggregated Request/s`.
|
|||
|
In the metrics part, you can see metrics per Region/Namespace/Table/RegionServer depending on the selected mode.
|
|||
|
The top screen is refreshed in a certain period – 3 seconds by default.
|
|||
|
|
|||
|
### Scrolling metric records
|
|||
|
|
|||
|
You can scroll the metric records in the metrics part.
|
|||
|
|
|||
|
![Scrolling metric records](img/scrolling_metric_records.gif "Scrolling metric records")
|
|||
|
|
|||
|
### Command line arguments
|
|||
|
|
|||
|
| Argument | Description |
|
|||
|
|---|---|
|
|||
|
| -d,--delay <arg> | The refresh delay (in seconds); default is 3 seconds |
|
|||
|
| -h,--help | Print usage; for help while the tool is running press `h` key |
|
|||
|
| -m,--mode <arg> | The mode; `n` (Namespace)|`t` (Table)|r (Region)|`s` (RegionServer), default is `r` (Region) |
|
|||
|
|
|||
|
### Modes
|
|||
|
|
|||
|
There are the following 4 modes in hbtop:
|
|||
|
|
|||
|
| Mode | Description |
|
|||
|
|---|---|
|
|||
|
| Region | Showing metric records per region |
|
|||
|
| Namespace | Showing metric records per namespace |
|
|||
|
| Table | Showing metric records per table |
|
|||
|
| RegionServer | Showing metric records per region server |
|
|||
|
|
|||
|
#### Region mode
|
|||
|
|
|||
|
In Region mode, the default sort field is `#REQ/S`.
|
|||
|
|
|||
|
The fields in this mode are as follows:
|
|||
|
|
|||
|
| 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 mode
|
|||
|
|
|||
|
In Namespace mode, the default sort field is `#REQ/S`.
|
|||
|
|
|||
|
The fields in this mode are as follows:
|
|||
|
|
|||
|
| 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 mode
|
|||
|
|
|||
|
In Table mode, the default sort field is `#REQ/S`.
|
|||
|
|
|||
|
The fields in this mode are as follows:
|
|||
|
|
|||
|
| 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 mode
|
|||
|
|
|||
|
In RegionServer mode, the default sort field is `#REQ/S`.
|
|||
|
|
|||
|
The fields in this mode are as follows:
|
|||
|
|
|||
|
| 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 |
|
|||
|
|
|||
|
### Changing mode
|
|||
|
|
|||
|
You can change mode by pressing `m` key in the top screen.
|
|||
|
|
|||
|
![Changing mode](img/changing_mode.gif "Changing mode")
|
|||
|
|
|||
|
### Changing the refresh delay
|
|||
|
|
|||
|
You can change the refresh by pressing `d` key in the top screen.
|
|||
|
|
|||
|
![Changing the refresh delay](img/changing_refresh_delay.gif "Changing the refresh delay")
|
|||
|
|
|||
|
### Changing the displayed fields
|
|||
|
|
|||
|
You can move to the field screen by pressing `f` key in the top screen. In the fields screen, you can change the displayed fields by choosing a field and pressing `d` key or `space` key.
|
|||
|
|
|||
|
![Changing the displayed fields](img/changing_displayed_fields.gif "Changing the displayed fields")
|
|||
|
|
|||
|
### Changing the sort field
|
|||
|
|
|||
|
You can move to the fields screen by pressing `f` key in the top screen. In the field screen, you can change the sort field by choosing a field and pressing `s`. Also, you can change the sort order (ascending or descending) by pressing `R` key.
|
|||
|
|
|||
|
![Changing the sort field](img/changing_sort_field.gif "Changing the sort field")
|
|||
|
|
|||
|
|
|||
|
### Changing the order of the fields
|
|||
|
|
|||
|
You can move to the fields screen by pressing `f` key in the top screen. In the field screen, you can change the order of the fields.
|
|||
|
|
|||
|
![Changing the order of the fields](img/changing_order_of_fields.gif "Changing the sort field")
|
|||
|
|
|||
|
### Filters
|
|||
|
|
|||
|
You can filter the metric records with the filter feature. We can add filters by pressing `o` key for ignoring case or `O` key for case sensitive.
|
|||
|
|
|||
|
![Adding filters](img/adding_filters.gif "Adding filters")
|
|||
|
|
|||
|
The syntax is as follows:
|
|||
|
```
|
|||
|
<Field><Operator><Value>
|
|||
|
```
|
|||
|
|
|||
|
For example, we can add filters like the following:
|
|||
|
```
|
|||
|
NAMESPACE==default
|
|||
|
REQ/S>1000
|
|||
|
```
|
|||
|
|
|||
|
The operators we can specify are as follows:
|
|||
|
|
|||
|
| Operator | Description |
|
|||
|
|---|---|
|
|||
|
| = | Partial match |
|
|||
|
| == | Exact match |
|
|||
|
| > | Greater than |
|
|||
|
| >= | Greater than or equal to |
|
|||
|
| < | Less than |
|
|||
|
| <= | Less than and equal to |
|
|||
|
|
|||
|
You can see the current filters by pressing `^o` key and clear them by pressing `=` key.
|
|||
|
|
|||
|
![Showing and clearing filters](img/showing_and_clearing_filters.gif "Showing and clearing filters")
|
|||
|
|
|||
|
### Drilling down
|
|||
|
|
|||
|
You can drill down the metric record by choosing a metric record that you want to drill down and pressing `i` key in the top screen. With this feature, you can find hot regions easily in a top-down manner.
|
|||
|
|
|||
|
![Drilling down](img/driling_down.gif "Drilling down")
|
|||
|
|
|||
|
### Help screen
|
|||
|
|
|||
|
You can see the help screen by pressing `h` key in the top screen.
|
|||
|
|
|||
|
![Help screen](img/help_screen.gif "Help screen")
|
|||
|
|
|||
|
## Others
|
|||
|
|
|||
|
### How hbtop gets the metrics data
|
|||
|
|
|||
|
hbtop gets the metrics from ClusterMetrics which is returned as the result of a call to Admin#getClusterMetrics() on the current HMaster. To add metrics to hbtop, they will need to be exposed via ClusterMetrics.
|