Amazon EMR クラスターで最も頻繁に発生するエラーや例外を検出して解決したいと考えています。また、Amazon Simple Storage Service (Amazon S3) のロケーションにある EMR ログを使用して、クラスターの詳細な診断とトラブルシューティングを行いたいと考えています。
簡単な説明
Amazon S3 ロケーションにある Amazon EMR のログを分析するには、Amazon Athena で AWS Systems Manager Automation ランブックである AWSSupport-DiagnoseEMRLogsWithAthena を使用します。ランブックを使用して EMR クラスターで問題の原因を特定し、解決します。
解決方法
自動化ランブックを実行する
AWSSupport-DiagnoseEMRLogsWithAthena ランブックを開始する前に、AWS Identity and Access Management (IAM) のユーザーまたはロールに必要な権限があることを確認します。AutomationAssumeRole パラメータがランブックを使用するために必要なアクションを確認するには、「AWSSupport-DiagnoseEMRLogsWithAthena」を参照してください。
Runbook を開始するには、次の手順を実行します。
- Systems Manager コンソールで、AWSSupport-DiagnoseEMRLogsWithAthena を開きます。
- [オートメーションの実行] を選択します。
- その後、以下の値を入力します:
AutomationAssumeRole: Systems Manager Automation がユーザーの代わりにアクションを実行できるようにする、IAM ロール の Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation はこのランブックを起動したユーザーのアクセス許可を使用します。
ClusterID: ユーザーの Amazon EMR クラスター ID。
(オプション) S3LogLocation: EMR ログが保存されている Amazon S3 の場所。クラスターのシャットダウン期間が 60 日を超える場合は、このパラメーターを指定します。
S3BucketName: Athena クエリの出力を受け取る Amazon S3 バケットの名前。バケットで [パブリックアクセスをブロック] がオンになっている必要があります。バケットはクラスターと同じ AWS リージョンと AWS アカウントにある必要があります。
Approvers: アクションを承認または拒否できる AWS 認証済みプリンシパルのリスト。
(オプション) FetchNodeLogsOnly: デフォルト値は false です。Amazon EMR アプリケーションコンテナログの診断を自動化するには、値を true に設定します。
(オプション) FetchContainersLogsOnly: デフォルト値は false です。Amazon EMR コンテナログの診断を自動化するには、値を true に設定します。
(オプション) ** EndSearchDate:** ログ検索の終了日。
(オプション) ** DaysToCheck:** EndSearchDate 値を設定する場合は、ログを遡及的に検索する日数を決定するために DaysToCheck も必要です。最大値は 30 日です。
(オプション) SearchKeywords: ログで検索するキーワードのリスト。カンマで区切ります。。
注: キーワードには、一重引用符または二重引用符を含めることができません。
- [実行] を選択します。
- [出力] セクションで詳細な結果を確認します。
出力には、次の Athena データ操作言語 (DML) クエリ結果へのリンクが表示されます。
- Amazon EMR クラスターログのすべてのエラーと例外、および対応するログ場所。
- Amazon EMR ログで照合された、固有の既知の例外の概要。
- 特定のエラーと例外が表示される Amazon S3 ログのパス。
自動化ランブックの問題のトラブルシューティング
次のいずれかの操作を行います。
- クラスターのログサイズがデフォルト設定よりも大きいために、基になる Athena DML クエリがタイムアウトすると、自動化が失敗する可能性があります。この問題を解決するには、Athena サービスクォータコンソールの DML クエリタイムアウトを増やします。完了したら、自動化を再実行します。
- 60 日よりも前にクラスターを終了した場合、ランブックによるクラスターの説明や Amazon S3 ログの場所の取得は行われません。この問題を解決するには、クラスターの Cluster-Id パラメーターと S3LogLocation パラメーターを入力したことを確認します。
関連情報
AWS サポート自動化ワークフロー (SAW)
オートメーションを実行する
オートメーションの設定