本文档介绍了如何启用 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 性能增强功能。
- 在 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 执行增强功能,请执行以下操作:
- 点击 + 添加媒体资源。
- 在 Key 字段中添加“spark.dataproc.enhanced.execution.enabled”,并在 Value 字段中添加“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 将为集群选择默认 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 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。
在终端窗口或 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
在创建集群时启用增强功能
在创建 Dataproc 集群时,请执行以下步骤以启用 Spark 优化和执行增强功能。已启用的增强功能会继续应用于提交到集群的所有 Spark 作业,除非您在提交作业时为特定作业停用增强功能。默认情况下,Dataproc 集群上会停用 Dataproc Spark 性能增强功能。
在
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 作业上处于停用状态,除非您在创建作业集群时启用这些增强功能,或者为特定作业启用这些增强功能。
在
jobs.submit
请求中,为 SparkJob、PySparkJob、SparkSqlJob 或 SparkRJob 指定以下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"