透過 執行 Spark SQL指令碼 StartJobRun API - Amazon EMR

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

透過 執行 Spark SQL指令碼 StartJobRun API

Amazon EMR on 6.7.0 版及更新EKS版本包含 Spark SQL任務驅動程式,以便您可以透過 執行 Spark StartJobRun SQL指令碼API。您可以使用 提供SQL入門檔案,在 EMRAmazon 上直接執行 Spark EKS StartJobRun SQL查詢API,而不需要對現有的 Spark SQL指令碼進行任何修改。下表列出 Spark SQL任務透過 支援的 Spark 參數 StartJobRun API。

您可以從下列 Spark 參數中選擇要傳送至 Spark SQL任務。使用這些參數來覆寫預設的 Spark 屬性。

選項 描述

--name NAME

Application Name (應用程式名稱)
--jars JARS 驅動程式和執行程式 classpath 隨附的以逗號分隔的 jar 清單。
--packages 驅動程式和執行程式 classpath 中包含以逗號分隔的 jar 的 maven 座標清單。
--exclude-packages 以逗號分隔的 groupId: 清單artifactId,在解決 中提供之相依性時排除,以避免相依性衝突。
--repositories 以逗號分隔的其他遠端儲存庫清單,用於搜尋 –packages 提供的 maven 座標。
--檔案 FILES 要放置在每個執行程式的工作目錄中的以逗號分隔的檔案清單。
--conf PROP=VALUE Spark 組態屬性。
--properties-file FILE 要從中載入額外屬性的檔案路徑。
--driver-memory MEM 驅動程式的記憶體。預設值為 1024MB。
--driver-java-options 用於傳遞給驅動程式的額外 Java 選項。
--driver-library-path 用於傳遞給驅動程式的額外程式庫路徑條目。
--driver-class-path 用於傳遞給驅動程式的額外 classpath 條目。
--executor-memory MEM 每個執行程式的記憶體。預設值為 1 GB。
--driver-cores NUM 驅動程式使用的核心數目。
--total-executor-cores NUM 所有執行程式的核心總數。
--executor-cores NUM 每個執行程式使用的核心數量。
--num-executor NUM 要啟動的執行程式數量。
-hivevar <key=value> 套用於 Hive 命令的變數替換,例如,-hivevar A=B
-hiveconf <property=value> 用於指定屬性的值。

對於 Spark SQL任務,請建立 start-job-run-request.json 檔案並指定任務執行所需的參數,如下列範例所示:

{ "name": "myjob", "virtualClusterId": "123456", "executionRoleArn": "iam_role_name_for_job_execution", "releaseLabel": "emr-6.7.0-latest", "jobDriver": { "sparkSqlJobDriver": { "entryPoint": "entryPoint_location", "sparkSqlParameters": "--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": "s3://my_s3_log_location" } } } }