本文档介绍了如何启用 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 性能增强功能 已停用。
- 在 Google Cloud 控制台中,打开 Dataproc 创建集群 页面。
- 在创建 Dataproc 集群表单上,点击创建 Compute Engine 上的集群行。
- 在在 Compute Engine 上创建 Dataproc 集群页面上,点击自定义集群面板,然后滚动到集群属性部分。
- 如需启用 Spark 优化增强功能,请执行以下操作:
- 点击 + 添加媒体资源。
- 在前缀列表中选择 spark,然后在键字段中添加“spark.dataproc.enhanced.optimizer.enabled”,并在值字段中添加“true”。
- 如需启用 Spark 执行增强功能,请执行以下操作:
- 点击 + 添加属性。
- 在前缀列表中选择 spark,然后添加 "spark.dataproc.enhanced.execution.enabled"键字段中的值,以及 “true”值字段中的值。
- 如需启用 Spark 优化增强功能,请执行以下操作:
- 填写或确认其他集群创建字段,然后 点击创建。
提交作业时启用增强功能
请执行以下步骤,为 Spark 作业启用 Spark 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 Spark 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。
- 在 Google Cloud 控制台中,打开 Dataproc 作业页面。
- 在作业页面上,点击提交作业,然后滚动到作业的属性部分。
- 如需启用 Spark 优化增强功能,请执行以下操作:
- 点击 + 添加媒体资源。在 Key 字段中添加“spark.dataproc.enhanced.optimizer.enabled”,并在 Value 字段中添加“true”。
- 如需启用 Spark 执行增强功能,请执行以下操作:
- 点击 + 添加媒体资源。
- 添加“spark.gclid.Enhance.execution.enabled”在键字段中 和“true”值字段中的值。
- 如需启用 Spark 优化增强功能,请执行以下操作:
- 填写或确认其他作业提交字段,然后点击提交。
gcloud
在创建集群时启用增强功能
在创建 Dataproc 集群时,请执行以下步骤以启用 Spark 优化和执行增强功能。已启用的增强功能对所有 Spark 作业仍然有效 提交到集群,除非您停用特定作业的增强功能 在提交作业时选择的项目。默认情况下,Dataproc 集群上会停用 Dataproc Spark 性能增强功能。
在终端窗口或 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 将会选择 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 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。
在终端窗口或 Cloud Shell 中,以本地运行方式运行以下 gcloud dataproc jobs submit 命令。
gcloud dataproc jobs submit SPARK_JOB_TYPE \ --cluster=CLUSTER_NAME \ --region=REGION \ --properties=PROPERTIES
注意:
- SPARK_JOB_TYPE:指定
spark
、pyspark
、spark-sql
或spark-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
- SPARK_JOB_TYPE:指定
API
在创建集群时启用增强功能
执行以下步骤以启用 Spark 优化和执行增强功能 创建 Dataproc 集群。已启用的增强功能对所有 Spark 作业仍然有效 提交到集群,除非您停用特定作业的增强功能 在提交作业时选择的项目。默认情况下,Dataproc Spark 性能增强功能 已停用。
指定以下内容
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 优化和执行增强功能。默认情况下,Dataproc Spark 性能增强功能在 Spark 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。
为
properties
SparkJob, PySparkJob, SparkSqlJob 或 SparkRJob 作为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"