Apache HBase監視
Apache HBase――概要
Apache HBaseは、分散型で拡張性あるデータストアです。オープン ソースのノンリレーショナル データベースで、ビッグ データへのランダム アクセスやリアルタイム アクセスに向いています。Apache HBaseは、GoogleのBigtableに類似した機能を、HadoopとHDFSで実現します。
Apache HBaseの監視――当社が提供すること
Applications Managerの利用によって、Apache HBaseの管理者はリージョン分散の分脈でクラスター監視が可能となります。ここでは、Apache HBase監視に必要な点や、収集できるパフォーマンス メトリック、Apache HBaseの正常稼働を確保する方法を紹介します。
- HBaseクラスターのメトリック追跡:HBaseクラスターが、継続して期待通り稼働していることを確認できます。平均負荷、リクエスト、リージョン サーバーの停止/稼働/合計の数も追跡します。
- メモリ・JVM利用率:利用可能メモリ量のほか、スワップ スペースやコミット済み仮想メモリ サイズなど、メモリ利用率を追跡します。JVMメトリックの監視で、サーバー パフォーマンスとの相関も把握可能です。
- リージョン サーバー パフォーマンス測定:ブロック キャッシュ、キャッシュ ヒットとミスの件数、ヒット率を監視します。コンパクションのメトリックや、コンパクション後の保存ファイルの総サイズを注視しています。
- パフォーマンス低下を迅速に解決:Apache HBaseコンポーネントでパフォーマンスの問題が発生すると、ただちに通知します。パフォーマンスのボトルネックを把握し、エンド ユーザー体感に影響する予兆のうちに、手早く是正アクションを起こせます。
Apache HBase――新規監視を追加するには
サポート対象のバージョン:HBaseバージョン1.x
Apache HBase監視の要件
HBaseメトリックの収集には、JMX MBeansを利用します。JMXを有効にするには、HBase/conf/HBase-env.shを開き、次のJava引数をコメント解除や追加してください。
export HBase_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export HBase_MASTER_OPTS="$HBase_MASTER_OPTS $HBase_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
export HBase_REGIONSERVER_OPTS="$HBase_REGIONSERVER_OPTS $HBase_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
新規監視作成の手順
- Apache HBase監視を作成するには、次の手順に従ってください。
- 新規監視のリンクをクリックします。Apache HBaseを選択してください。
- 監視の表示名を入力してください。
- HBaseを実行しているホストのIPアドレスか名前を入力してください。
- JMXポート番号をフィールドに入力します。HBaseのデフォルト インストール状態では、マスター サーバーのポートは10101、リージョン サーバーのポートは10102です。
- ユーザー名、パスワード、JNDIパスなどの認証情報を入力するか、認証情報マネージャーのリストから選択します。認証不要の場合、このフィールドは空欄のままにしてください。
- ポーリング間隔を入力してください(分)。
- Apache HBaseサーバーにアクセス可能か確認するには、認証情報のテスト ボタンをクリックしてください。
- Apache HBase監視を関連付ける監視グループを、コンボボックスで選択します(任意項目)。監視は複数グループに関連付け可能です。
- 監視の追加をクリックすると、ネットワークからApache HBaseを検出し、監視が始まります。
AddMonitor APIでApache HBase監視を追加する
構文
http://[hostname]:[port]/AppManager/xml/AddMonitor?apikey=[API_KEY]&type=HBase&displayname=[DISPLAY_NAME]&hostname=[HOST_NAME]&port=[PORT]&username=[USER_NAME]&password=[PASS_WORD]&JNDIPath=/jmxrm
リクエスト パラメーターAPIリクエストにかかわるパラメーターを下に記します。
フィールド 説明 apikey HBase監視の作成に使うAPIキーを指定します。 type 追加するデータベースのタイプです。値はHBaseにしてください。 displayname HBase監視の表示名です。 hostname HBaseを実行しているホストの名前です。 port HBaseが動作するポート番号です。 username HBaseデータベースへのアクセス権限を持つユーザーの名前を指定してください。 password HBaseデータベースへのアクセス権限があるユーザーのパスワードを指定します。 JNDIPath 利用するJNDIパスを指します。 リクエスト サンプル
http://Prod-server7:9010/AppManager/xml/AddMonitor?apikey=0b719d6a4a564c8be86fbc60d3f0b996&type=HBase&displayname=HBase&hostname=APP-W8-AIO-5&Port=5000&username=admin&password=Abc@123&JNDIPath=/jmxrmi
監視対象のパラメーター
監視タブをクリックすると監視カテゴリ ビューへ移動します。データベース テーブルで、HBaseをクリックしてください。HBase一括設定ビューが、3つのタブに分類・表示されます。
- 可用性タブでは、過去24時間か30日の可用性履歴がわかります。
- パフォーマンスタブでは、過去24時間か30日のステータスとイベントがわかります。
- リスト ビューでは、一括管理設定が可能です。
監視名をクリックすると、全サーバーの詳細が次のタブで表示されます。
| パラメーター | 説明 |
|---|---|
| HBaseマスター概要 | |
| 平均負荷 | リージョン サーバーごとに対応している平均リージョン数を指します。 |
| デッド リージョン サーバー数 | デッド リージョン サーバーの数です。 |
| リージョン サーバー数 | オンライン状態のリージョン サーバーの数です。 |
| クラスター リクエスト数/分 | 全リージョン サーバーから1クラスターへの、リクエストのペースを表します(数/分)。 |
| HBase JVMのメトリック | |
| 総ヒープ メモリ | 総ヒープ メモリを計算します(MB)。 |
| 利用済みヒープ メモリ | 利用中のヒープ メモリを計算します(MB)。 |
| コミット済みヒープ メモリ | コミット済みヒープ メモリを計算します(MB)。 |
| 総ガベージ コレクション | JVMガベージ コレクションの合計回数を表します。 |
| メモリ詳細 | |
| 空き物理メモリ サイズ | 空き物理メモリの量です(MB)。 |
| 空きスワップ スペース サイズ | 空きスワップ スペースの総量です(MB)。 |
| 総物理メモリ サイズ | 物理メモリの総量です(MB)。 |
| 総スワップ スペース サイズ | スワップ スペースの総量です(MB)。 |
| コミット済み仮想メモリ サイズ | 実行中のプロセスに保証された仮想メモリの量を指します(MB)。 |
| スレッド詳細 | |
| 指定された待機時間、待機中のスレッド(TIMED_WAITING) | 指定時間まで、他のスレッドがアクションを起こすのを待期しているスレッドの数です。 |
| 待期スレッド数 | 他のスレッドがアクションを起こすまで待機しているスレッドを指します。 |
| ブロックされたスレッド数 | ブロックされ、モニター ロックを待期しているスレッドを指します。 |
| 実行可能スレッド数 | Java仮想マシンで実行中のスレッドを示します。 |
| パラメーター | 説明 |
|---|---|
| IPC詳細 | |
| オープンな接続の数です。 | RPCレイヤーでのオープンな接続の数です。 |
| 総コール時間 | キューイングや処理も含めたコールの総時間を表します。 |
| アクティブRPCハンドラー数 | リクエストにアクティブに対応しているRPCハンドラーの数です。 |
| レプリケーションでの呼び出し数 | レプリケーションから受信し、キューに入っている操作の件数を表します。 |
| 転送データ | |
| 送信データ | コールキュー内の送信データ量を表します。 |
| 受信データ | コールキュー内の受信データ量を表します。 |
| 例外 | |
| Out of Order Scanner例外 | |
| Unknown Scanner例外 | |
| Region Too Busy例外 | リージョン サーバーがビジーであることによる例外です。 |
| パラメーター | 説明 |
|---|---|
| 遷移中のリージョン(Regions in Transition) | |
| 遷移中のリージョン | 遷移中のリージョンの数を指します(Regions in Transition)。 |
| しきい値を超えた遷移中のリージョン | rit.metrics.threshold.timeプロパティの設定値を超えた、遷移中のリージョン数を示します。 |
| リージョン サーバー | |
| 名前 | リージョン サーバーの名前です。 |
| 起動時間 | HBaseマスターの起動時刻です。 |
| パラメーター | 説明 |
|---|---|
| ストア ファイル | |
| ストア ファイル数 | リージョン サーバー内でストア ファイルの数です。 |
| ストア ファイル サイズ | リージョン サーバーにあるストア ファイルの総サイズです(データ ファイル)。 |
| MemStore | |
| MemStoreサイズ | リージョン サーバーの、MemStoreメモリ総サイズを示します。 |
| コンパクション詳細 | |
| コンパクション完了数 | ノード起動以来、完了したコンパクションの総数を示します。 |
| コンパクション済みバイト(Num Bytes Compacted Count) | エンティティの全HRegionにわたってコンパクト化された、データ量を指します(バイト)。 |
| コンパクション済みファイル数(Num Files Compacted Count) | エンティティの全HRegionにわたってコンパクト化された、ファイルの数です。 |
| HLog数 | |
| delete件数 | リージョン サーバーでの、deleteリクエスト総数を表します。 |
| increment件数 | リージョン サーバーでの、incrementリクエスト総数を表します。 |
| append件数 | リージョン サーバーでの、appendリクエスト総数を表します。 |
| mutate件数 | リージョン サーバーでの、mutateリクエスト総数を表します。 |
| 操作遅延:scan next | |
| scan next操作数 | エンティティの全HRegionでの、scan next操作数を表します。 |
| 最小scan next時間 | リージョン サーバーでscan操作にかかる、最小遅延を表します。 |
| 最大scan next時間 | リージョン サーバーでscan操作にかかる、最大遅延を表します。 |
| 平均scan next時間(Mean) | リージョン サーバーでscan操作にかかる、平均遅延を表します。 |
| 中央scan next時間(Median) | リージョン サーバーでscan操作にかかる、遅延の中央値を表します。 |
| 操作遅延:get | |
| get操作 | リージョン サーバーでのgetリクエストのペースを指します(数/秒)。 |
| 最小get時間 | リージョン サーバーでget操作にかかる、最小遅延を示します。 |
| 最大get時間 | リージョン サーバーでget操作にかかる、最大遅延を示します。 |
| 平均get時間(Mean) | リージョン サーバーでget操作にかかる、平均遅延を示します。 |
| 中央get時間(Median) | リージョン サーバーでget操作にかかる、遅延の中央値を示します。 |
| パラメーター | 説明 |
|---|---|
| キャッシュ詳細 | |
| ブロック キャッシュ数 | ブロック キャッシュにキャッシュされているストア ファイル数です。 |
| ブロック キャッシュ削除数(Eviction) | ブロック キャッシュから削除されたブロックの総数を指します。 |
| ブロック キャッシュ空きサイズ | ブロック キャッシュの空き容量を指します(バイト)。 |
| ブロック キャッシュ エクスプレス ヒット率(%) | リクエスト キャッシュがオンの場合の、ブロック キャッシュ ヒット率を表します(%)。 |
| ブロック キャッシュ ヒット件数 | リクエストに対するブロック キャッシュ ヒットの総数を、キャッシング設定不問で示します。 |
| ブロック キャッシュ数ヒット率(%) | 全リクエストに対するブロック キャッシュ ヒット率を、キャッシング設定不問で示します(%)。 |
| ブロック キャッシュ ミス件数 | リクエストに対するブロック キャッシュ ミスの総数を、キャッシング設定不問で示します。 |
| ブロック キャッシュ サイズ | ブロックのキャッシュに使ったデータ容量を指します(バイト)。 |
| スロウな操作の数 | |
| スロウなappendの数 | 完了に1,000ミリ秒以上かかったappendの数です。 |
| スロウなgetの数 | 完了に1,000ミリ秒以上かかったgetの数です。 |
| スロウなputの数 | 完了に1,000ミリ秒以上かかったputの数です。 |
| スロウなincrementの数 | 完了に1,000ミリ秒以上かかったincrementの数です。 |
| スロウなdeleteの数 | 完了に1,000ミリ秒以上かかったdeleteの数です。 |
| パラメーター | 説明 |
|---|---|
| HLogファイル分割時間 | |
| HLog平均分割時間(Mean) | 先行書き込みログ ファイル(write-ahead log file)の分割にかかった、平均の時間を示します。 |
| HLog最小分割時間 | 先行書き込みログ ファイルの分割にかかった、最短の時間を示します。 |
| HLog最大分割時間 | 再起動以来、先行書き込みログ ファイルの分割にかかった、最長の時間を示します。 |
| HLog分割時間操作数 | 先行書き込みログ ファイルの分割回数を指します。 |
| HLogファイル分割時間 | |
| 平均HLog分割時間(Mean) | HLogファイル全体の分割にかかった平均時間を指します。 |
| 最小HLog分割時間 | HLogファイル全体の分割にかかった最短時間を指します。 |
| 最大HLog分割時間 | HLogファイル全体の分割にかかった最長時間を指します。 |
| HLog分割時間操作数(num) | 先行書き込みログ ファイルの分割回数です。 |
| パラメーター | 説明 |
|---|---|
| 設定 | |
| VM名 | Java仮想マシンのインプリメンテーション名を表します。 |
| ブート クラス パス | ブート ストラップ クラス ローダーが、クラス ファイルの検索に使うパスを示します。 |
| VMベンダー | Java仮想マシンのインプリメンテーション ベンダーを表します。 |
| Specバージョン | HBaseが実装しているJMX Specificationのバージョンを表します。 |