我在哪里配置 dataproc 集群中 spark 作业的 spark 执行器和执行器内存?

Where do I configure spark executors and executor memory of a spark job in a dataproc cluster?

我是 GCP 的新手,被要求在 dataproc 上工作以创建 spark 应用程序以将数据从源数据库带到 GCP 上的 Bigquery。 我使用以下选项创建了一个 dataproc 集群:

gcloud dataproc clusters create testcluster \
--enable-component-gateway --bucket <bucket_name> \
--region <region> \
--subnet <subnet_name> \
--no-address \
--zone <zone> \
--master-machine-type n1-standard-4 \
--master-boot-disk-size 500 \
--num-workers 2 \
--worker-machine-type n1-standard-4 \
--worker-boot-disk-size 500 \
--metadata 'PIP_PACKAGES=pyspark==2.4.0' \
--initialization-actions <some_script.sh> \
--image-version 1.5-debian10 \
--project <project_name> \
--service-account=<account_name> \
--properties spark:spark.jars=<jar_path_of_source_db_in_bucket>,dataproc:dataproc.conscrypt.provider.enable=false \
--optional-components ANACONDA,JUPYTER

我正在通过以下方式提交 Spark 作业:

我不明白的是如何指定执行器的数量和执行器内存? 谁能告诉我在哪里以及如何为我的 spark 作业指定参数 --num-execuorsexecutor-memory

您可以通过 --properties 选项传递它们:

--properties=[PROPERTY=VALUE,…] List of key value pairs to configure Spark. For a list of available properties, see: https://spark.apache.org/docs/latest/configuration.html#available-properties.

使用 gcloud 命令的示例:

gcloud dataproc jobs submit pyspark path_main.py --cluster=$CLUSTER_NAME \
--region=$REGION \
--properties="spark.submit.deployMode"="cluster",\
"spark.dynamicAllocation.enabled"="true",\
"spark.shuffle.service.enabled"="true",\
"spark.executor.memory"="15g",\
"spark.driver.memory"="16g",\
"spark.executor.cores"="5"

或者,如果您更喜欢通过 Properties 部分中的 UI 通过单击 ADD PROPERTY 按钮来完成此操作: