ログの保存 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ログの保存

EMR Serverless でジョブの進行状況をモニタリングし、ジョブの失敗をトラブルシューティングするには、Serverless EMR がアプリケーションログを保存して処理する方法を選択できます。ジョブ実行を送信するときに、ログ記録オプション CloudWatch としてマネージドストレージ、Amazon S3、Amazon を指定できます。

では CloudWatch、使用するログタイプとログの場所を指定するか、デフォルトのタイプと場所を受け入れることができます。 CloudWatch ログの詳細については、「」を参照してくださいAmazon を使用した EMR Serverless のログ記録 CloudWatch。マネージドストレージと S3 ログ記録では、次の表に、マネージドストレージ Amazon S3 バケット 、またはその両方を選択した場合に予想されるログの場所と UI の可用性を示します。

オプション イベントログ コンテナログ アプリケーション UI

マネージドストレージ

マネージドストレージに保存

マネージドストレージに保存

サポート

マネージドストレージと S3 バケットの両方

両方の場所に保存

S3 バケットに保存

サポート

Amazon S3 バケット

S3 バケットに保存

S3 バケットに保存

サポートされていない 1

1 マネージドストレージオプションを選択したままにしておくことをお勧めします。それ以外の場合は、組み込みアプリケーション を使用できませんUIs。

マネージドストレージを使用した EMR Serverless のログ記録

デフォルトでは、EMRサーバーレスはアプリケーションログを Amazon EMRマネージドストレージに最大 30 日間安全に保存します。

注記

デフォルトオプションをオフにすると、Amazon EMRはユーザーに代わってジョブのトラブルシューティングを行うことができません。

EMR Studio からこのオプションをオフにするには、許可の選択を解除します。 AWS ジョブの送信ページの「追加設定」セクションの「30 日間ログを保持するには」チェックボックスをオンにします。

からこのオプションをオフにするには AWS CLIジョブ実行を送信するときは、 managedPersistenceMonitoringConfiguration設定を使用します。

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }

Amazon S3 バケットを使用した EMR Serverless のログ記録 Amazon S3

ジョブが Amazon S3 にログデータを送信する前に、ジョブランタイムロールのアクセス許可ポリシーに次のアクセス許可を含める必要があります。をログ記録バケットの名前DOC-EXAMPLE-BUCKET-LOGGINGに置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET-LOGGING/*" ] } ] }

からのログを保存するように Amazon S3 バケットを設定するには AWS CLIジョブの実行を開始するときは、 s3MonitoringConfiguration設定を使用します。これを行うには、設定--configuration-overridesで以下を指定します。

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://DOC-EXAMPLE-BUCKET-LOGGING/logs/" } } }

再試行が有効になっていないバッチジョブの場合、EMRサーバーレスは次のパスにログを送信します。

'/applications/<applicationId>/jobs/<jobId>'

EMR サーバーレスリリース 7.1.0 以降では、ストリーミングジョブとバッチジョブの再試行がサポートされています。再試行を有効にしてジョブを実行すると、EMRServerless はログパスプレフィックスに試行番号を自動的に追加するため、ログをより区別して追跡できます。

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'

Amazon を使用した EMR Serverless のログ記録 CloudWatch

Serverless アプリケーションにジョブを送信するときに、アプリケーションログを保存するオプションとして Amazon EMR CloudWatch を選択できます。これにより、 CloudWatch Logs Insights や Live Tail などの CloudWatch ログ分析機能を使用できます。から などの他のシステムにログをストリーミング CloudWatch して、さらに分析 OpenSearch することもできます。

EMR Serverless は、ドライバーログのリアルタイムログ記録を提供します。 CloudWatch ライブテール機能またはテールコマンドを使用して CloudWatch CLI、ログをリアルタイムで表示できます。

デフォルトでは、EMRサーバーレスの CloudWatch ログ記録は無効になっています。有効にするには、「」の設定を参照してくださいAWS CLI

注記

Amazon はログをリアルタイムで CloudWatch 公開するため、ワーカーからのリソースが増えます。ワーカーのキャパシティーを低く設定すると、ジョブの実行時間への影響が大きくなる可能性があります。 CloudWatch ログ記録を有効にする場合は、ワーカーの容量を増やすことをお勧めします。また、 の 1 秒あたりのトランザクション数 (TPS) レートが低すぎると、ログの発行がスロットリングされる可能性がありますPutLogEvents。 CloudWatch スロットリング設定は、EMRサーバーレスを含むすべてのサービスに対してグローバルです。詳細については、「 の CloudWatch ログのスロットリングを確認する方法」を参照してください。 AWS re:post

でのログ記録に必要なアクセス許可 CloudWatch

ジョブが Amazon にログデータを送信する前に CloudWatch、ジョブランタイムロールのアクセス許可ポリシーに次のアクセス許可を含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:AWS リージョン:111122223333:*" ] }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:AWS リージョン:111122223333:log-group:my-log-group-name:*" ] } ] }

AWS CLI

から Serverless のログを保存する CloudWatch ように Amazon EMR を設定するには AWS CLIジョブの実行を開始するときは、 cloudWatchLoggingConfiguration設定を使用します。これを行うには、次の設定オーバーライドを指定します。オプションで、ロググループ名、ログストリームプレフィックス名、ログタイプ、および暗号化キー を指定することもできますARN。

オプションの値を指定しない場合、 CloudWatch はデフォルトのログストリーム を使用して/aws/emr-serverless、デフォルトのロググループ にログを発行します/applications/applicationId/jobs/jobId/worker-type

EMR サーバーレスリリース 7.1.0 以降では、ストリーミングジョブとバッチジョブの再試行がサポートされています。ジョブの再試行を有効にした場合、EMRServerless はログパスプレフィックスに試行番号を自動的に追加するため、ログをより区別して追跡できます。

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'

以下は、EMRServerless のデフォルト設定で Amazon CloudWatch ログ記録を有効にするために必要な最小設定を示しています。

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }

次の例は、EMRServerless の Amazon CloudWatch ログ記録を有効にするときに指定できる必須およびオプションのすべての設定を示しています。サポートされているlogTypes値もこの例の下に表示されます。

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, // Required "logGroupName": "Example_logGroup", // Optional "logStreamNamePrefix": "Example_logStream", // Optional "encryptionKeyArn": "key-arn", // Optional "logTypes": { "SPARK_DRIVER": ["stdout", "stderr"] //List of values } } } }

デフォルトでは、EMRServerless はドライバー stdout ログと stderr ログのみを に発行します CloudWatch。他のログが必要な場合は、 logTypesフィールドを使用してコンテナロールと対応するログタイプを指定できます。

次のリストは、logTypes設定に指定できるサポートされているワーカータイプを示しています。

Spark
  • SPARK_DRIVER : ["STDERR", "STDOUT"]

  • SPARK_EXECUTOR : ["STDERR", "STDOUT"]

[Hive]
  • HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]

  • TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]