View a markdown version of this page

使用 Spark 屬性指定自訂組態 - Amazon Athena

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

使用 Spark 屬性指定自訂組態

當您在 Amazon Athena for Apache Spark 中建立或編輯工作階段時,您可以使用 Spark 屬性來指定工作階段的 .jar 檔案、套件或其他自訂組態。若要指定 Spark 屬性,您可以使用 Athena 主控台 AWS CLI、 或 Athena API。

使用 Athena 主控台指定 Spark 屬性

在 Athena 主控台中,您可以在建立筆記本編輯目前工作階段時指定 Spark 屬性。

若要在建立記事本編輯工作階段詳細資訊對話方塊中新增屬性
  1. 展開 Spark 屬性

  2. 若要新增屬性,請使用在資料表中編輯在 JSON 中編輯選項。

    • 對於在資料表中編輯選項,請選擇新增屬性以新增屬性,或選擇移除以移除屬性。使用關鍵字方塊,以輸入屬性名稱及其值。

      • 若要新增自訂 .jar 檔案,請使用 spark.jars 屬性。

      • 若要指定套件檔案,請使用 spark.jars.packages 屬性。

    • 若要直接輸入和編輯您的設定,請選擇在 JSON 中編輯選項。在 JSON 文字編輯器中,您可以執行以下任務:

      • 選擇複製,以將 JSON 文字複製到剪貼簿。

      • 選擇清除,以從 JSON 編輯器中移除所有文字。

      • 選擇設定 (齒輪) 圖示,以設定換行或選擇 JSON 編輯器的顏色主題。

備註

  • 您可以在 Athena for Spark 中設定屬性,這與直接在 SparkConf 物件上設定 Spark 屬性

  • 所有 Spark 屬性均以 spark. 字首開頭。帶有其他字首的屬性會被忽略。

  • 並非所有 Spark 屬性都適用於 Athena 的自訂組態。如果您提交的 StartSession 請求具有限制組態,工作階段將無法啟動。

    • 您無法使用 spark.athena. 字首,因為其已保留。

使用 AWS CLI 或 Athena API 提供自訂組態

若要使用 AWS CLI 或 Athena API 來提供工作階段組態,請使用 StartSession API 動作或 start-session CLI 命令。在您的 StartSession 請求中,使用 EngineConfiguration 物件的 SparkProperties 欄位,以 JSON 格式傳遞您的組態資訊。這樣,將會使用您指定的組態啟動工作階段。

若要從 指定自訂 Spark 屬性 AWS CLI,請在啟動互動式工作階段時使用 engine-configuration 組態。

aws athena start-session \ --region "REGION" --work-group "WORKGROUP" \ --engine-configuration '{ "Classifications": [{ "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "10", "spark.dynamicAllocation.executorIdleTimeout": "300" } }] }'

您也可以使用 CreateWorkgroup API 動作或 UpdateWorkgroup API 動作,在工作群組層級指定組態預設值。在工作群組中定義的組態預設值會套用至該工作群組啟動的所有工作階段。

若要從工作群組 AWS CLI 的 指定預設 Spark 屬性,請在建立新的工作群組時使用 engine-configuration組態:

aws athena create-work-group \ --region "REGION" \ --name "WORKGROUP_NAME" \ --configuration '{ "EngineVersion": { "SelectedEngineVersion": "Apache Spark version 3.5" }, "ExecutionRole": "EXECUTION_ROLE", "EngineConfiguration": { "Classifications": [ { "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "10", "spark.dynamicAllocation.executorIdleTimeout": "300" } } ] } }'

若要修改工作群組 AWS CLI 中的預設 Spark 屬性,請在更新工作群組時使用 engine-configuration組態。這些變更會套用至未來的新互動式工作階段。

aws athena update-work-group \ --region "REGION" \ --work-group "WORKGROUP_NAME" \ --configuration-updates '{ "EngineVersion": { "SelectedEngineVersion": "Apache Spark version 3.5" }, "ExecutionRole": "EXECUTION_ROLE", "EngineConfiguration": { "Classifications": [ { "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "12", "spark.dynamicAllocation.executorIdleTimeout": "300" } } ] } }'