EMR Serverless のデフォルトのアプリケーション設定 - Amazon EMR

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

EMR Serverless のデフォルトのアプリケーション設定

同じアプリケーションで送信するすべてのジョブに対して、アプリケーションレベルでランタイム設定とモニタリング設定の共通セットを指定できます。これにより、ジョブごとに同じ設定を送信する必要性に関連する追加のオーバーヘッドが軽減されます。

設定は、次の時点で変更できます。

以下のセクションでは、詳細と詳細なコンテキストの例を示します。

アプリケーションレベルでの設定の宣言

アプリケーションで送信するジョブに対して、アプリケーションレベルのログ記録とランタイム設定プロパティを指定できます。

monitoringConfiguration

アプリケーションで送信するジョブのログ設定を指定するには、 monitoringConfigurationフィールドを使用します。EMR Serverless のログ記録の詳細については、「」を参照してくださいログの保存

runtimeConfiguration

などのランタイム設定プロパティを指定するにはspark-defaultsruntimeConfigurationフィールドに設定オブジェクトを指定します。これは、アプリケーションで送信するすべてのジョブのデフォルト設定に影響します。詳細については、「Hive 設定オーバーライドパラメータ」および「Spark 設定オーバーライドパラメータ」を参照してください。

使用可能な設定分類は、特定の EMR Serverless リリースによって異なります。例えば、カスタム Log4j spark-driver-log4j2と の分類spark-executor-log4j2は、リリース 6.8.0 以降でのみ使用できます。アプリケーション固有のプロパティのリストについては、Spark ジョブのプロパティ「」および「」を参照してくださいHive ジョブのプロパティ

アプリケーションレベルでデータ保護 および Java 17 ランタイムAWS Secrets Manager 用に Apache Log4j2 プロパティ を設定することもできます。

アプリケーションレベルで Secrets Manager シークレットを渡すには、シークレットを使用して EMR Serverless アプリケーションを作成または更新する必要があるユーザーとロールに次のポリシーをアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPolicy", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "kms:Decrypt" ], "Resource": "arn:aws:secretsmanager:your-secret-arn" } ] }

シークレットのカスタムポリシーの作成の詳細については、 AWS Secrets Manager ユーザーガイドの「 のアクセス許可ポリシーの例 AWS Secrets Manager」を参照してください。

注記

アプリケーションレベルで指定した runtimeConfigurationは、 StartJobRun applicationConfigurationの にマッピングされますAPI。

宣言例

次の例は、 でデフォルト設定を宣言する方法を示していますcreate-application

aws emr-serverless create-application \ --release-label release-version \ --type SPARK \ --name my-application-name \ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.driver.cores": "4", "spark.executor.cores": "2", "spark.driver.memory": "8G", "spark.executor.memory": "8G", "spark.executor.instances": "2", "spark.hadoop.javax.jdo.option.ConnectionDriverName":"org.mariadb.jdbc.Driver", "spark.hadoop.javax.jdo.option.ConnectionURL":"jdbc:mysql://db-host:db-port/db-name", "spark.hadoop.javax.jdo.option.ConnectionUserName":"connection-user-name", "spark.hadoop.javax.jdo.option.ConnectionPassword": "EMR.secret@SecretID" } }, { "classification": "spark-driver-log4j2", "properties": { "rootLogger.level":"error", "logger.IdentifierForClass.name": "classpathForSettingLogger", "logger.IdentifierForClass.level": "info" } } ]' \ --monitoring-configuration '{ "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/app-level" }, "managedPersistenceMonitoringConfiguration": { "enabled": false } }'

ジョブ実行中の設定の上書き

を使用して、アプリケーション設定とモニタリング設定の設定オーバーライドを指定できますStartJobRunAPI。EMR 次に、サーバーレスはアプリケーションレベルとジョブレベルで指定した設定をマージして、ジョブ実行の設定を決定します。

マージが発生したときの粒度レベルは次のとおりです。

注記

で提供する設定の優先度は、アプリケーションレベルで提供する設定よりもStartJobRun優先されます。

優先順位ランキングの詳細については、Hive 設定オーバーライドパラメータ「」および「」を参照してくださいSpark 設定オーバーライドパラメータ

ジョブを開始するときに、特定の設定を指定しない場合、アプリケーションから継承されます。ジョブレベルで設定を宣言する場合は、次の操作を実行できます。

  • 既存の設定を上書きする - オーバーライド値を使用して、StartJobRunリクエスト内の同じ設定パラメータを指定します。

  • 追加設定の追加 - リクエストに、指定する値StartJobRunを含む新しい設定パラメータを追加します。

  • 既存の設定を削除する - アプリケーションランタイム設定 を削除するには、削除する設定のキーを指定し、設定{}の空の宣言を渡します。ジョブの実行に必要なパラメータを含む分類を削除することはお勧めしません。例えば、Hive ジョブ に必要なプロパティを削除しようとすると、ジョブは失敗します。

    アプリケーションモニタリング設定 を削除するには、関連する設定タイプに適した方法を使用します。

    • cloudWatchLoggingConfiguration - を削除するにはcloudWatchLogging、有効なフラグを として渡しますfalse

    • managedPersistenceMonitoringConfiguration - マネージド永続化設定を削除してデフォルトの有効状態にフォールバックするには、設定{}に空の宣言を渡します。

    • s3MonitoringConfiguration - を削除するにはs3MonitoringConfiguration、設定{}の空の宣言を渡します。

オーバーライドの例

次の例は、 でのジョブ送信中に実行できるさまざまなオペレーションを示していますstart-job-run

aws emr-serverless start-job-run \ --application-id your-application-id \ --execution-role-arn your-job-role-arn \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket1/wordcount_output"] } }' \ --configuration-overrides '{ "applicationConfiguration": [ { // Override existing configuration for spark-defaults in the application "classification": "spark-defaults", "properties": { "spark.driver.cores": "2", "spark.executor.cores": "1", "spark.driver.memory": "4G", "spark.executor.memory": "4G" } }, { // Add configuration for spark-executor-log4j2 "classification": "spark-executor-log4j2", "properties": { "rootLogger.level": "error", "logger.IdentifierForClass.name": "classpathForSettingLogger", "logger.IdentifierForClass.level": "info" } }, { // Remove existing configuration for spark-driver-log4j2 from the application "classification": "spark-driver-log4j2", "properties": {} } ], "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { // Override existing configuration for managed persistence "enabled": true }, "s3MonitoringConfiguration": { // Remove configuration of S3 monitoring }, "cloudWatchLoggingConfiguration": { // Add configuration for CloudWatch logging "enabled": true } } }'

ジョブの実行時に、 および で説明されている優先度オーバーライドランキングに基づいて、次の分類Hive 設定オーバーライドパラメータと設定が適用されますSpark 設定オーバーライドパラメータ

  • 分類spark-defaultsは、ジョブレベルで指定されたプロパティで更新されます。この分類では、 に含まれるプロパティのみが考慮StartJobRunされます。

  • 分類は、既存の分類リストに追加spark-executor-log4j2されます。

  • 分類spark-driver-log4j2は削除されます。

  • の設定managedPersistenceMonitoringConfigurationは、ジョブレベルの設定で更新されます。

  • の設定s3MonitoringConfigurationは削除されます。

  • の設定は、既存のモニタリング設定に追加cloudWatchLoggingConfigurationされます。