本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義作業範本參數
作業範本參數可讓您指定作業範本中的變數。使用該作業範本啟動作業執行時,需要指定這些參數變數的值。作業範本參數會以 ${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/" } } } } -
搭配使用
create-job-template命令與儲存在本機或 Amazon S3 中的create-job-template-request.json檔案路徑。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-id123456\ --namemyjob\ --job-template-id1234abcd\ --job-template-parameters '{"EntryPointLocation": "entry_point_location","MainClass": "ExampleMainClass","LogS3BucketUri": "s3://example_s3_bucket/"}'