Spark 属性

您可以在提交 Spark 批处理工作负载时设置 Spark 属性。

示例:

gcloud dataproc batches submit spark
    --properties=spark.checkpoint.compress=true \\
    --region=region \\
    other args ...

注意:

  • Dataproc Serverless for Spark 支持大多数 Spark 属性,但它不支持与 YARN 和 shuffle 相关的 Spark 属性,例如 spark.master=yarnspark.shuffle.service.enabled。如果 Spark 应用代码设置 YARN 或 shuffle 属性,则应用将失败。

  • 与 Dataproc on Compute Engine 集群属性不同,Dataproc Serverless for Spark 工作负载属性不包含“spark:”前缀。

  • Dataproc Serverless for Spark 自动扩缩由 Spark 资源分配属性控制。

自定义 Spark 属性

Dataproc Serverless for Spark 支持以下自定义 Spark 属性:

属性 默认值 说明 示例
spark.dataproc.driver.disk.size 每个核心 100GiB 用于驱动程序节点(初始化 SparkContext 的驱动程序进程)的磁盘大小,使用大小单位后缀(“k”、“m”、“g”或“t”)指定 1024g,2t
spark.dataproc.executor.disk.size 每个核心 100GiB 用于执行程序节点(在其中运行执行程序进程)的磁盘大小,使用大小单位后缀(“k”、“m”、“g”或“t”)指定 1024g,2t
spark.dataproc.driverEnv.<EnvironmentVariableName> EnvironmentVariableName 添加到驱动程序进程。您可以指定多个环境变量。

资源分配属性

Dataproc Serverless 使用 Spark 属性来确定用于分配工作负载的计算、内存和磁盘资源。这些属性的值可能会影响工作负载使用的配额和费用(如需了解详情,请参阅 Dataproc Serverless 配额Dataproc Serverless 价格)。

属性 效果
spark.driver.cores 要分配给 Spark 驱动程序的核心数 (vCPU)。驱动程序内存按固定比率根据驱动程序核心进行扩缩(大约 4GB/核心),目前不可独立控制。默认值:4。 有效值:4、8、16。
spark.executor.cores 要分配给每个 Spark 执行程序的核心数 (vCPU)。执行程序内存按固定比率根据执行程序核心进行扩缩(大约 4GB/核心),目前无法单独控制。默认值:4。有效值:4、8、16。
spark.dataproc.driver.disk.size 要分配给驱动程序的磁盘空间量。不得小于 200GB。
spark.dataproc.executor.disk.size 要分配给每个执行程序的磁盘空间量。执行程序磁盘空间可用于 shuffle 数据和暂存依赖项。不得小于 200GB。
spark.executor.instances 要分配的执行程序的初始数量。在批处理开始运行后,自动扩缩可能会更改活跃执行程序的数量。最少为 2,最多为 100。
spark.dynamicAllocation.initialExecutors 自动扩缩功能将请求的初始执行程序数量。在批处理开始运行后,自动扩缩可能会更改活跃执行程序的数量。最少为 2,最多为 100。
spark.dynamicAllocation.minExecutors 批处理可以缩容到的最小执行程序数量。不得低于 2。
spark.dynamicAllocation.maxExecutors 批次可以扩容到的最大执行程序数。不得超过 1000。