定義作業範本參數 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

定義作業範本參數

作業範本參數可讓您指定作業範本中的變數。使用該作業範本啟動作業執行時,需要指定這些參數變數的值。作業範本參數會以 ${parameterName} 格式指定。可以選擇將 jobTemplateData 欄位中的任何值指定為作業範本參數。針對每個作業範本參數變數,請指定其資料類型 (STRINGNUMBER),並選擇性地指定預設值。以下範例顯示如何為進入點位置、主類別和 S3 日誌位置值指定作業範本參數。

將進入點位置、主類別和 Amazon S3 日誌位置指定為作業範本參數

  1. 建立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/" } } } }
  2. 搭配使用 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

使用具有作業範本參數的作業範本開始作業執行

若要使用包含任務範本參數的任務範本啟動任務執行,請在StartJobRunAPI請求中指定任務範本 ID 以及任務範本參數的值,如下所示。

aws emr-containers start-job-run \ --virtual-cluster-id 123456 \ --name myjob \ --job-template-id 1234abcd \ --job-template-parameters '{"EntryPointLocation": "entry_point_location","MainClass": "ExampleMainClass","LogS3BucketUri": "s3://example_s3_bucket/"}'