この記事では、HBaseのリアルタイムモニタリングツールhbtopを紹介したいと思います。
hbtopとは
hbtopは、Unixのtopコマンドライクなツールで、リアルタイムにHBaseのメトリクスを表示することができます。メトリクスは、Region/Namespace/Table/RegionServer単位で表示することができ、メトリクスの値によるソートやフィルタリングをすることもできます。また、ドリルダウン機能によりHot Regionを簡単に探すことができます。
hbtopは、HBase2系だと2.1.7、2.2.2のリリースから含まれており、hbase1系では1.3.6、1.4.11、1.5.0から含まれています。
以下のコマンドで、hbtopを起動することができます。
$ hbase hbtop
hbtopを起動すると、以下のような画面が表示されます。

この画面は、上部のサマリ部分と下部のメトリクス部分で構成されています。サマリ部分ではHBaseのバージョンやクラスタID、RegionServer数などを見ることができます。また、メトリクス部分では、選んだモードによってRegion/Namespace/Table/RegionServer毎のメトリクスを見ることができます。そして、この画面はデフォルトで3秒ごとにリフレッシュされます。
また、以下のように、メトリクス部分をスクロールすることもできます。

コマンドライン引数
hbtopを起動するときに、以下のコマンドライン引数を指定することができます。
| Argument | Description |
|---|---|
| -d,--delay | リフレッシュ間隔。デフォルト3秒 |
| -h,--help | ヘルプを表示。 |
| -m,--mode | 初期モード。n (Namespaceモード)、t (Tableモード)、r (Regionモード)、s (RegionServerモード), デフォルトは r (Regionモード)。 |
モードの変更
以下のように、画面上でmキーを押すことでモードを変更することができます。

NameSpace毎にメトリクスを表示するNamespaceモード、Table毎にメトリクスを表示するTableモード、Region毎にメトリクスを表示するRegionモード、RegionServer毎にメトリクスを表示するRegionServerモードがあります。
リフレッシュ間隔の変更
以下のように、画面上でdキーを押すことでリフレッシュ間隔の変更をすることができます。

メトリクスの表示/非表示
表示するメトリクスの表示/非表示を選択することができます。以下のように、画面上でfキーを押し、表示/非表示を切り替えたいメトリクスを選択しdキーかスペースキーを押すことで切り替えることができます。

ソートするメトリクスの変更
ソートするメトリクスの変更するには、画面上でfキーを押し、ソートするメトリクスを選択しsキーを押します。また、画面上でRキーを押すことで昇順/降順を切り替えることができます。

表示メトリクスの並び替え
表示しているメトリクスの順番を変えたい場合には、画面上でfキーを押し、順番を変えたいメトリクスを選択しrightキーを押します。そして、順番を変えたい場所まで移動させleftキーを押します。

フィルタ
フィルタを追加することで、条件にマッチしたレコードだけを表示することができます。oキー(ignoring case)かOキー(case sensitive)を押すことでフィルタを追加できます。

フィルタのシンタックスは以下のようになります。
<Field><Operator><Value>
例として以下のようなフィルタが指定できます。
NAMESPACE==default
REQ/S>1000
Operatorとしては、以下が指定できます。
| Operator | Description |
|---|---|
| = | Partial match |
| == | Exact match |
| > | Greater than |
| >= | Greater than or equal to |
| < | Less than |
| <= | Less than and equal to |
また、Ctrl + oキーを押すことで現在指定されているフィルタを表示することができ、=キーを押すことでフィルタをクリアすることができます。

ドリルダウン
ドリルダウン機能を使うためには、ドリルダウンしたいレコードを選択し、iキーを押します。

Namespaceモードの場合はTableモードにドリルダウンされ、Tableモードの場合はRegionモードにドリルダウンされます。また、RegionServerモードの場合にはRegionモードにドリルダウンされます。
ヘルプ画面の表示
まとめ
今回は、HBaseのリアルタイムモニタリングツールであるhbtopを紹介しました。もっと詳細を知りたい方は、以下の参考資料をご覧ください。
- HBASE-11062 hbtop, https://issues.apache.org/jira/browse/HBASE-11062
- Introduction "hbtop", a real-time monitoring tool for HBase modeled after Unix's 'top' command, https://blogs.apache.org/hbase/entry/introduction-hbtop-a-real-time
- Apache HBase Reference Guide - hbtop, https://hbase.apache.org/book.html#hbtop
