如何更快地处理此 Dataproc 作业?

问题描述 投票:0回答:1

代码从 GCS 读取 628360 行的 CSV,使用方法 withColumn 对创建的 Dataframe 应用转换,然后写入分区的 Bigquery 表。

尽管工作流程很简单,但处理工作却花费了 19 小时 42 分钟。 我该怎么做才能更快地处理这个问题?

我正在使用自动缩放策略,并且我知道它不会扩展,因为没有 Yarn 内存挂起,如下所示 screenshot

集群配置如下:

gcloud dataproc clusters create $CLUSTER_NAME \
    --project $PROJECT_ID_PROCESSING \
    --region $REGION \
    --image-version 2.0-ubuntu18 \
    --num-masters 1 \
    --master-machine-type n2d-standard-2 \
    --master-boot-disk-size 100GB \
    --confidential-compute \
    --num-workers 4 \
    --worker-machine-type n2d-standard-2 \
    --worker-boot-disk-size 100GB \
    --secondary-worker-boot-disk-size 100GB \
    --autoscaling-policy $AUTOSCALING_POLICY \
    --secondary-worker-type=non-preemptible \
    --subnet $SUBNET \
    --no-address \
    --shielded-integrity-monitoring \
    --shielded-secure-boot \
    --shielded-vtpm \
    --labels label\
    --gce-pd-kms-key $KMS_KEY \
    --service-account $SERVICE_ACCOUNT \
    --scopes 'https://www.googleapis.com/auth/cloud-platform' \
    --zone "" \
    --max-idle 3600s
google-cloud-dataproc
1个回答
0
投票

我看到两个主要问题:

  1. 磁盘太小,这不会为您节省金钱,相反它们会显着减慢工作速度,并且您最终会为 CPU 支付更多费用。建议的最小大小为 1 TB。请参阅此doc了解更多详细信息。

  2. 机密计算更安全,但代价是它会显着减慢速度,因此仅在必要时启用它。

© www.soinside.com 2019 - 2024. All rights reserved.