Dataproc Spark 性能增强功能

本文档介绍如何启用 Dataproc Spark 性能增强功能,以帮助 Dataproc Spark 作业在更短的时间内处理更多的数据,并降低费用。

Dataproc Spark 性能增强功能包括:

  • Spark 优化器增强功能:
    • 编写优化器规则,改善 Spark 计划
    • 改进了 Dataproc BigQuery 连接器在 Spark 作业中使用时的性能
  • Spark Execution 增强功能:
    • Spark 执行引擎改进

其他 Dataproc 性能改进:请参阅 Dataproc 集群缓存,了解如何减少访问 Cloud Storage 中的数据所花费的时间。

如何启用 Dataproc Spark 性能增强功能

在 Compute Engine 集群上创建 Dataproc 或将 Spark 作业提交到集群时,您可以使用 Google Cloud 控制台、Google Cloud CLI 和 Dataproc API 来启用 Dataproc Spark 性能增强功能。

控制台

创建集群时启用增强功能

创建 Dataproc 集群时,请执行以下步骤以启用 Spark 优化和执行增强功能。启用的增强功能对提交到集群的所有 Spark 作业仍然有效,除非您在提交作业时为特定作业停用这些增强功能。默认情况下,Dataproc 集群上会停用 Dataproc Spark 性能增强功能。

  1. 在 Google Cloud 控制台中,打开 Dataproc 创建集群页面。
  2. 创建 Dataproc 集群表单上,点击 Compute Engine 上的集群行中的创建
  3. 在 Compute Engine 上创建 Dataproc 集群页面上,点击自定义集群面板,然后滚动到集群属性部分。
    1. 如需启用 Spark 优化增强功能,请执行以下操作:
      1. 点击 + 添加属性
      2. 前缀列表中选择 spark,然后在字段中添加“spark.dataproc.enhanced.optimize.enabled”并在字段中添加“true”。
    2. 如需启用 Spark 执行增强功能,请执行以下操作:
      1. 点击 + 添加属性
      2. 前缀列表中选择 spark,然后在字段中添加“spark.dataproc.enhanced.execution.enabled”,并在字段中添加“true”。
  4. 填写或确认其他集群创建字段,然后点击创建

提交作业时启用增强功能

执行以下步骤来为 Spark 作业启用 Spark 优化和执行增强功能。默认情况下,系统会对 Spark 作业停用 Dataproc Spark 性能增强功能,除非您在创建作业集群或为特定作业启用这些增强功能时启用这些增强功能。

  1. 在 Google Cloud 控制台中,打开 Dataproc 作业页面。
  2. 作业页面上,点击提交作业,然后滚动到作业属性部分。
    1. 如需启用 Spark 优化增强功能,请执行以下操作:
      1. 点击 + 添加属性。 在字段中添加“spark.dataproc.enhanced.optimize.enabled”,并在字段中添加“true”。
    2. 如需启用 Spark 执行增强功能,请执行以下操作:
      1. 点击 + 添加属性
      2. 字段中添加“spark.dataproc.enhanced.execution.enabled”,并在字段中添加“true”。
  3. 填写或确认其他作业提交字段,然后点击提交

gcloud

创建集群时启用增强功能

创建 Dataproc 集群时,请执行以下步骤以启用 Spark 优化和执行增强功能。启用的增强功能对提交到集群的所有 Spark 作业仍然有效,除非您在提交作业时为特定作业停用这些增强功能。默认情况下,Dataproc 集群上会停用 Dataproc Spark 性能增强功能。

  1. 在终端窗口或 Cloud Shell 中本地运行以下 gcloud dataproc clusters create 命令。

    gcloud dataproc clusters create CLUSTER_NAME \
        --project=PROJECT_ID \
        --region=REGION \
        --image-version=IMAGE \
        --properties=PROPERTIES
    

    备注:

    • CLUSTER_NAME:集群名称,在项目中必须是唯一的。名称必须以小写字母开头,最多可以包含 51 个小写字母、数字和连字符。但不能以连字符结尾。已删除的集群的名称可以重复使用。
    • PROJECT_ID:要与集群关联的项目。
    • REGION:集群所在的 Compute Engine 区域,例如 us-central1
      • 您可以添加可选的 --zone=ZONE 标志,以指定区域内的一个地区,例如 us-central1-a。如果您未指定地区,则 Dataproc 自动选择地区功能会选择具有指定区域的地区。
    • IMAGE:Dataproc 映像版本 2.0.69+2.1.17+ 及更高版本均提供 Dataproc Spark 优化器和执行性能增强功能。如果省略此标志,Dataproc 将为集群选择默认 Dataproc on Compute Engine 映像的最新次要版本(请参阅默认 Dataproc 映像版本)。
    • PROPERTIES:

      • 如需启用 Spark 优化增强功能,请指定以下内容:
      spark:spark.dataproc.enhanced.optimizer.enabled=true
      
      • 如需启用 Spark 执行增强功能,请指定以下内容:
      spark:spark.dataproc.enhanced.execution.enabled=true
      
      • 如需启用 Spark 优化和执行增强功能,请指定以下内容:
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      
      

提交作业时启用增强功能

执行以下步骤来为 Spark 作业启用 Spark 优化和执行增强功能。默认情况下,系统会对 Spark 作业停用 Dataproc Spark 性能增强功能,除非您在创建作业集群或为特定作业启用这些增强功能时启用这些增强功能。

  1. 在终端窗口或 Cloud Shell 中,本地运行以下 gcloud dataproc 作业提交命令。

    gcloud dataproc jobs submit SPARK_JOB_TYPE \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --properties=PROPERTIES
    

    备注:

    • SPARK_JOB_TYPE:指定 sparkpysparkspark-sqlspark-r
    • CLUSTER_NAME:将在其中运行作业的作业的名称。
    • REGION:集群所在的区域。
    • PROPERTIES:

      • 如需启用 Spark 优化增强功能,请指定以下内容:
      spark.dataproc.enhanced.optimizer.enabled=true
      
      • 如需启用 Spark 执行增强功能,请指定以下内容:
      spark.dataproc.enhanced.execution.enabled=true
      
      • 如需启用 Spark 优化和执行增强功能,请指定以下内容:
      spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
      

API

创建集群时启用增强功能

创建 Dataproc 集群时,请执行以下步骤以启用 Spark 优化和执行增强功能。启用的增强功能对提交到集群的所有 Spark 作业仍然有效,除非您在提交作业时为特定作业停用这些增强功能。默认情况下,Dataproc 集群上会停用 Dataproc Spark 性能增强功能。

  1. 将以下 SoftwareConfig.properties 指定为 clusters.create 请求的一部分:

    • 如需启用 Spark 优化增强功能,请指定以下内容:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true"
    
    • 如需启用 Spark 执行增强功能,请指定以下内容:
    "spark:spark.dataproc.enhanced.execution.enabled": "true"
    
    • 如需启用 Spark 优化和执行增强功能,请指定以下内容:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
    

提交作业时启用增强功能

执行以下步骤来为 Spark 作业启用 Spark 优化和执行增强功能。默认情况下,系统会对 Spark 作业停用 Dataproc Spark 性能增强功能,除非您在创建作业集群或为特定作业启用这些增强功能时启用这些增强功能。

  1. jobs.submit 请求中为 SparkJobPySparkJobSparkSqlJobSparkRJob 指定以下 properties

    • 如需启用 Spark 优化增强功能,请指定以下内容:
    "spark.dataproc.enhanced.optimizer.enabled=true"
    
    • 如需启用 Spark 执行增强功能,请指定以下内容:
    "spark.dataproc.enhanced.execution.enabled=true"
    
    • 如需启用 Spark 优化和执行增强功能,请指定以下内容:
    "spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"