使用 Spark 属性指定自定义配置 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Spark 属性指定自定义配置

在 Amazon Athena for Apache Spark 中创建或编辑会话时,可以使用 Spark 属性为会话指定 .jar 文件、包或其他自定义配置。要指定 Spark 属性,可使用 Athena 控制台、Amazon 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 属性。将忽略带有其他前缀的属性。

  • 在 Athena 上,并非所有 Spark 属性都可用于自定义配置。如果您提交的 StartSession 请求配置受限,则会话将无法启动。

    • 您不能使用 spark.athena. 前缀,因为它是预留前缀。

使用 Amazon CLI 或 Athena API 提供自定义配置

要使用 Amazon CLI 或 Athena API 提供会话配置,使用 StartSession API 操作或 start-session CLI 命令。在 StartSession 请求中,使用 EngineConfiguration 对象的 SparkProperties 字段以 JSON 格式传递您的配置信息。这将启动具有您指定的配置的会话。

要从 Amazon CLI 中指定自定义 Spark 属性,请在启动交互式会话时使用 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 操作在工作组级别指定配置默认值。在工作组中定义的配置默认值适用于为该工作组启动的所有会话。

要从 Amazon 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" } } ] } }'

要从 Amazon 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" } } ] } }'