ジョブテンプレートパラメータの定義
ジョブテンプレートパラメータを使用すると、ジョブテンプレート内の変数を指定できます。これらのパラメータ変数の値は、そのジョブテンプレートを使用してジョブ実行を開始するときに指定する必要があります。ジョブテンプレートパラメータは ${parameterName}
フォーマットで指定されます。jobTemplateData
フィールド内の任意の値をジョブテンプレートパラメータとして指定できます。ジョブテンプレートパラメータ変数ごとに、データタイプ (STRING
または NUMBER
) を指定し、オプションでデフォルト値を指定します。以下の例は、エントリポイントロケーション、メインクラス、S3 ログロケーション値のジョブテンプレートパラメータを指定する方法を示しています。
エントリポイントの場所、メインクラス、Amazon S3 ログの場所をジョブテンプレートパラメータとして指定するには
-
create-job-template-request.json
ファイルを作成し、以下の JSON ファイルの例に示すように、ジョブテンプレートに必要なパラメータを指定します。パラメータの詳細については、「CreateJobTemplate API」を参照してください。{ "name": "mytemplate", "jobTemplateData": { "executionRoleArn": "
iam_role_arn_for_job_execution
", "releaseLabel": "emr-6.7.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "${EntryPointLocation}", "entryPointArguments": [ "argument1
","argument2
",...], "sparkSubmitParameters": "--class ${MainClass} --conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.driver.memory":"2G" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED", "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group
", "logStreamNamePrefix": "log_stream_prefix
" }, "s3MonitoringConfiguration": { "logUri": "${LogS3BucketUri}" } } }, "parameterConfiguration": { "EntryPointLocation": { "type": "STRING" }, "MainClass": { "type": "STRING", "defaultValue":"Main
" }, "LogS3BucketUri": { "type": "STRING", "defaultValue":"s3://my_s3_log_location
/" } } } } -
ローカルまたは Amazon S3 に保存されている
create-job-template-request.json
ファイルへのパスを指定して、create-job-template
コマンドを使用します。aws emr-containers create-job-template \ --cli-input-json file:
//./create-job-template-request.json
ジョブテンプレートパラメータを指定したジョブテンプレートを使用してジョブ実行を開始するには
ジョブテンプレートパラメータを含むジョブテンプレートを使用してジョブ実行を開始するには、以下に示すように StartJobRun
API リクエストでジョブテンプレート ID とジョブテンプレートパラメータの値を指定します。
aws emr-containers start-job-run \ --virtual-cluster-id
123456
\ --namemyjob
\ --job-template-id1234abcd
\ --job-template-parameters '{"EntryPointLocation": "entry_point_location
","MainClass": "ExampleMainClass
","LogS3BucketUri": "s3://example_s3_bucket
/"}'