このトピックでは、Hive のチェック項目と主要メトリクスについて説明します。
重大度レベル
- P0: 重大。 P0 レベルのエラーが発生した場合、Hive サービスは利用できません。すぐに問題のトラブルシューティングを行う必要があります。
- P1: 高。 P1 レベルのエラーが発生した場合、Hive サービスは利用可能ですが、パフォーマンスが低下したり、ワークロードが高くなる可能性があります。すぐに問題のトラブルシューティングを行う必要があります。
HiveServer 関連のチェック項目
可用性: inspection_hive_server_availability
- チェックが失敗し、
hive server availability permission check is failedというエラーが報告されます。これは、ユーザーが HiveServer をチェックするために使用されるステートメントを実行する権限を持っていないことを示します。たとえば、ユーザーに付与された権限が誤って取り消された可能性があります。
- チェックが失敗し、
Hive server availability is failedというエラーが報告されます。これは、HiveServer が異常であることを示します。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
高可用性: inspection_hive_server_ha
Hive server HA status is OKというメッセージが返された場合、すべての HiveServer コンポーネントは正常な状態です。One or more Hive server failedというメッセージが返された場合、1 つ以上の HiveServer コンポーネントが異常です。これは P1 レベルのエラーです。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。All Hive server are failedというメッセージが返された場合、すべての HiveServer コンポーネントが異常です。これは P0 レベルのエラーです。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
ポートの存在: inspection_hive_server_port
このチェック項目を使用して、マシン上に HiveServer コンポーネントのポート 10000 が存在するかどうかを確認できます。ポート 10000 が存在しない場合、HiveServer プロセスは異常な状態です。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
ガベージコレクション: inspection_hive_server_gc
- JVM ヒープメモリの使用率が 95% 以上の場合、P0 レベルのエラーが発生します。この場合、HiveServer コンポーネントのメモリサイズをすぐに増やす必要があります。そう lo しないと、HiveServer コンポーネントが再起動され、ジョブが失敗する可能性があります。
- JVM ヒープメモリの使用率が 90% 以上の場合、P1 レベルのエラーが発生します。この場合、HiveServer コンポーネントのメモリサイズをすぐに増やす必要があります。そうしないと、HiveServer コンポーネントが再起動され、ジョブが失敗する可能性があります。
- JVM ヒープメモリの使用率が 90% 未満の場合、ビジネス要件に基づいて HiveServer コンポーネントのメモリサイズを調整するかどうかを決定できます。
再起動回数: inspection_hive_server_restart
- HiveServer コンポーネントが 5 分以内に繰り返し再起動された場合、P0 レベルのエラーが発生します。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
- HiveServer コンポーネントが 5 分以内に 1 回再起動された場合、P1 レベルのエラーが発生します。この場合、HiveServer プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
- その他のシナリオでは、HiveServer コンポーネントは正常な状態のままです。
HiveMetaStore 関連のチェック項目
高可用性: inspection_hive_metastore_ha
Hive metastore HA status is OKというメッセージが返された場合、すべての HiveMetaStore コンポーネントは正常な状態です。One or more metastore failedというメッセージが返された場合、1 つ以上の HiveMetaStore コンポーネントが異常です。これは P1 レベルのエラーです。この場合、HiveMetaStore プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。All Hive metastore are failedというメッセージが返された場合、すべての HiveMetaStore コンポーネントが異常です。これは P0 レベルのエラーです。この場合、HiveMetaStore プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
ポートの存在: inspection_hive_metastore_port
このチェック項目を使用して、マシン上に HiveMetaStore コンポーネントのポート 9083 が存在するかどうかを確認できます。ポート 9083 が存在しない場合、HiveMetaStore プロセスは異常な状態です。この場合、HiveMetaStore プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
ガベージコレクション: inspection_hive_metastore_gc
- JVM ヒープメモリの使用率が 95% 以上の場合、P0 レベルのエラーが発生します。この場合、HiveMetaStore コンポーネントのメモリサイズをすぐに増やす必要があります。
- JVM ヒープメモリの使用率が 90% 以上の場合、P1 レベルのエラーが発生します。この場合、HiveMetaStore コンポーネントのメモリサイズをすぐに増やす必要があります。
- JVM ヒープメモリの使用率が 90% 未満の場合、ビジネス要件に基づいて HiveMetaStore コンポーネントのメモリサイズを調整するかどうかを決定できます。
再起動回数: inspection_hive_metastore_restart
- HiveMetaStore コンポーネントが 5 分以内に繰り返し再起動された場合、P0 レベルのエラーが発生します。この場合、HiveMetaStore プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
- HiveMetaStore コンポーネントが 5 分以内に 1 回再起動された場合、P1 レベルのエラーが発生します。この場合、HiveMetaStore プロセスとそのログを確認して問題のトラブルシューティングを行う必要があります。
- その他のシナリオでは、HiveMetaStore コンポーネントは正常な状態のままです。
HiveServer の主要メトリクス
E-MapReduce(EMR)コンソールのクラスターの [監視] タブで、HiveServer2 コンポーネントの主要メトリクスを表示できます。
- セッション関連のメトリクス
OpenSessions と ActiveSessions: 開いているセッション数またはアクティブなセッション数を表示できます。これにより、エラー発生時に多数のタスクが実行されていたかどうかを確認し、ビジネス要件に基づいてメモリサイズを調整できます。
- JVM 関連のメトリクス
JVM MemHeapMax および GC 関連のメトリクス: エラー発生時の JVM メトリクスを表示して、メモリサイズを調整するかどうかを判断できます。
- タスク関連のメトリクス
PENDING タスク、ActiveRunTasksCalls、および TasksCount 関連のメトリクス: 保留中のタスクが多数存在する場合は、HiveServer プロセスのメモリと YARN リソースキューのスケジューリングリソースが十分かどうか、または大きなジョブが大量のリソースを占有しているかどうかを確認する必要があります。たとえば、保留中のタスクは、進行が中断されたタスクである可能性があります。
HiveMetaStore の主要メトリクス
EMR コンソールのクラスターの [監視] タブで、HiveMetaStore コンポーネントの主要メトリクスを表示できます。
- JVM 関連のメトリクス
JVM MemHeapMax および GC 関連のメトリクス: エラー発生時の JVM メトリクスを表示して、メモリサイズを調整するかどうかを判断できます。
- メタデータ操作関連のメトリクス
GetTable 関連のメトリクスと CreateTable Time メトリクスが増加傾向にある場合、または関連する例外が発生した場合、HiveMetaStore コンポーネントのメモリまたはバックエンドデータベースのパフォーマンスのボトルネックが発生しているかどうかを確認する必要があります。これらのメトリクスは、メタデータ関連の操作を実行するために必要な期間を測定するために使用されます。現在のメモリサイズに基づいて HiveMetaStore コンポーネントのメモリサイズを調整したり、データベースでクエリを実行するために必要な期間に基づいてバックエンドデータベースの仕様をアップグレードしたりできます。