Dataproc Spark 性能增强功能

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

Dataproc Spark 性能增强功能包括:

  • Spark Optimizer 增强功能:
    • 编写了优化器规则以优化 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 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. 添加“spark.gclid.Enhance.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:要与集群关联的项目。
    • REGIONCompute Engine 区域 集群所在的位置,例如 us-central1
      • 您可以添加可选的 --zone=ZONE 标志 以指定区域内的可用区 例如 us-central1-a。如果您未指定可用区,Dataproc 自动选择可用区展示位置功能会选择包含指定区域的可用区。
    • IMAGE:Dataproc 映像版本 2.0.69+2.1.17+ 及更高版本中提供 Dataproc Spark 优化器和执行性能增强功能。如果您省略此标志,Dataproc 将会选择 Compute Engine 上默认 Dataproc 的最新次要版本 集群映像(请参阅 默认 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

在创建集群时启用增强功能

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

  1. 指定以下内容 SoftwareConfig.propertiesclusters.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 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 Spark 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。

  1. properties SparkJob, PySparkJob, SparkSqlJobSparkRJob 作为 jobs.submit 请求:

    • 如需启用 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"