ログの保存 - Amazon EMR

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

ログの保存

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

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

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

マネージドストレージ

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

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

サポート

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

両方の場所に保存

S3 バケットに保存

サポート

Amazon S3 バケット

S3 バケットに保存

S3 バケットに保存

サポートされていません1

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

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

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

注記

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

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

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

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

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

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-logging-bucket/*" ] } ] }

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

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/" } } }

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

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

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

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

Amazon での EMR Serverless のログ記録 CloudWatch

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

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

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

注記

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

でのログ記録に必要なアクセス許可 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

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

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

EMR Serverless リリース 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"]