翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップログファイルのログの場所のカスタマイズ
Amazon EMR バージョン 7.11 以降、ステップごとにステップの S3 ログ記録動作をカスタマイズできるようになりました。1 つのステップで、ステップのログがアップロードされる一意の S3 バケットを選択できます。S3 で保管中のステップのログを暗号化するために使用される一意の KMS キーを選択することもできます。これらのオプションは、クラスターの起動時に設定されたクラスター全体のログ記録設定よりも優先されます。
前提条件
-
クラスターでは、クラスターのログ記録が有効になっている必要があります。詳細については、「Amazon EMR クラスターのログ記録とデバッグを設定する」を参照してください。
-
EC2 インスタンスプロファイル:
-
クラスターの EC2 インスタンスプロファイルは、ステップのログ記録設定で使用される S3 バケットへのアクセスを許可する必要があります。
-
クラスターの EC2 インスタンスプロファイルは、ステップのログ記録設定で使用される KMS キーへのアクセスを許可する必要があります。さらに、クラスターの EC2 インスタンスプロファイルは
kms:Decryptおよびkms:GenerateDataKeyアクションを許可する必要があります。
-
ステップログ設定
EMR にステップを送信すると、StepMonitoringConfiguration を介してステップのログ記録動作を設定できます。StepMonitoringConfiguration には S3MonitoringConfiguration オブジェクトが含まれており、ステップの S3 ログ記録バケットや KMS キーを指定できます。
次の例は、Python スクリプトからステップの S3 バケットと KMS キーをカスタマイズする方法を示しています。
import boto3 emr_client = boto3.client("emr", region_name="us-east-1") # Define your step: example_step = [ { "Name": "Example Step for StepMonitoringConfiguration", "ActionOnFailure": "CONTINUE", "HadoopJarStep": { "Jar": "command-runner.jar", "Args": ["bash", "-c", "echo 1"] }, "StepMonitoringConfiguration": { "S3MonitoringConfiguration": { "LogUri": "s3://your-s3-bucket/", # Replace this with your S3 bucket "EncryptionKeyArn": "arn:aws:kms:your-kms-key-arn" # Replace this with your KMS key ARN } } } ] response = emr_client.add_job_flow_steps( JobFlowId="j-xxxxxxxxxxxxx", # Replace this with your EMR cluster ID Steps=example_step )
考慮事項
-
クラスターがクラスターログ記録を有効にしない場合、 を指定してもステップログは S3 にアップロードされません
StepMonitoringConfiguration。 -
ステップで Spark アプリケーションを実行すると、アプリケーションのコンテナログも で指定された場所にアップロードされます
StepMonitoringConfiguration。 -
を指定
LogUriせずに を指定することも、EncryptionKeyArnその逆を指定することもできます。EMR はデフォルトで、 で省略されているフィールドのクラスター全体の設定になりますStepMonitoringConfiguration。