Dataproc Spark 性能增强功能

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

Dataproc Spark 性能增强功能包括:

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

其他 Dataproc 性能改进:请参阅 Dataproc 集群缓存,这有助于减少访问 Cloud Storage 中数据所花的时间。

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

在创建 Dataproc on Compute Engine 集群或将 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.optimizer.enabled”,并在字段中添加“true”。
    2. 如需启用 Spark 执行增强功能,请执行以下操作:
      1. 点击 + 添加媒体资源
      2. 前缀列表中选择 spark,然后在字段中添加“spark.dataproc.enhanced.execution.enabled”,并在字段中添加“true”。
  4. 填写或确认其他集群创建字段,然后点击创建

在提交作业时启用增强功能

请执行以下步骤,为 Spark 作业启用 Spark 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 Spark 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。

  1. 在 Google Cloud 控制台中,打开 Dataproc 作业页面。
  2. 作业页面上,点击提交作业,然后滚动到作业的属性部分。
    1. 如需启用 Spark 优化增强功能,请执行以下操作:
      1. 点击 + 添加媒体资源。在 Key 字段中添加“spark.dataproc.enhanced.optimizer.enabled”,并在 Value 字段中添加“true”。
    2. 如需启用 Spark 执行增强功能,请执行以下操作:
      1. 点击 + 添加媒体资源
      2. Key 字段中添加“spark.dataproc.enhanced.execution.enabled”,并在 Value 字段中添加“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 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 Spark 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。

  1. 在终端窗口或 Cloud Shell 中,以本地运行方式运行以下 gcloud dataproc jobs submit 命令。

    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. clusters.create 请求中指定以下 SoftwareConfig.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 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 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"