本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義作業範本參數
作業範本參數可讓您指定作業範本中的變數。使用該作業範本啟動作業執行時,需要指定這些參數變數的值。作業範本參數會以 ${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-id
123456
\ --namemyjob
\ --job-template-id1234abcd
\ --job-template-parameters '{"EntryPointLocation": "entry_point_location
","MainClass": "ExampleMainClass
","LogS3BucketUri": "s3://example_s3_bucket
/"}'