【问题标题】:Why spark content default parallelism is not same as number of vCPU?为什么火花内容默认并行度与 vCPU 数量不同?
【发布时间】:2023-03-27 08:36:01
【问题描述】:

我在 Google Cloud Platform Dataproc 中创建了一个集群,代码如下:sn-p:

gcloud dataproc clusters create $SOLO \
    --project $PROJ \
    --bucket $STORAGE \
    --region $REGION \
    --image-version 1.4-ubuntu18 --single-node \
    --master-machine-type n1-standard-8 \
    --master-boot-disk-type pd-ssd --master-boot-disk-size 100 \
    --initialization-actions gs://goog-dataproc-initialization-actions-$REGION/python/pip-install.sh \

Google documentation heren1-standard-8 有 8 个 vCPU。

我有一个 PySpark 脚本,其中包含以下代码:

import pyspark
sc = pyspark.SparkContext.getOrCreate()
print(sc.defaultParallelism)

当我将该 PySpark 脚本提交到集群时,作业日志显示 Spark 内容的默认并行度为 2。

为什么sc.defaultParallelism 返回 2,而不是 8?

【问题讨论】:

    标签: python apache-spark google-cloud-platform pyspark google-cloud-dataproc


    【解决方案1】:

    根据 Spark 文档,通常这个参数只在distributed shuffle operations 的上下文中才有意义。即使在这种情况下,它也取决于它正在做什么类型的操作,例如减少/加入/并行化,并不总是重新运行本地机器上的核心数。

    【讨论】:

      【解决方案2】:

      劫持亨利的答案并基于我对并行计算n1-standard-8 的了解是最大的,除非作业调度程序允许从可用资源池中动态分配(而不是增加)资源给您的作业。一些工作可能需要比最初报价的要少,因此会分配多于 1 到少于 8 的任何工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-01
        • 2022-11-11
        • 2012-06-03
        • 1970-01-01
        • 2020-02-28
        相关资源
        最近更新 更多