您可以在提交 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=yarn
和spark.shuffle.service.enabled
。如果 Spark 应用代码设置 YARN 或 shuffle 属性,则应用将失败。与 Dataproc on Compute Engine 集群属性不同,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。 |