无论我多少修改设置,yarn-site.xml即使用以下所有选项
yarn.scheduler.minimum-allocation-vcores
yarn.nodemanager.resource.memory-mb
yarn.nodemanager.resource.cpu-vcores
yarn.scheduler.maximum-allocation-mb
yarn.scheduler.maximum-allocation-vcores
Run Code Online (Sandbox Code Playgroud)
我仍然无法获得我的应用程序,即Spark,以利用群集上的所有核心.火花执行器似乎正确地占用了所有可用的内存,但每个执行器只是继续使用单个内核而不再使用.
以下是配置的选项 spark-defaults.conf
spark.executor.cores 3
spark.executor.memory 5100m
spark.yarn.executor.memoryOverhead 800
spark.driver.memory 2g
spark.yarn.driver.memoryOverhead 400
spark.executor.instances 28
spark.reducer.maxMbInFlight 120
spark.shuffle.file.buffer.kb 200
Run Code Online (Sandbox Code Playgroud)
请注意,spark.executor.cores设置为3,但它不起作用.我该如何解决?
我正在Google DataProc群集上运行一个火花工作.但看起来Spark并没有使用vcores群集中的所有可用内容,如下所示
基于像其他一些问题,这个和这个,我已经安装使用群集DominantResourceCalculator来考虑资源分配的两个vCPU和内存
gcloud dataproc clusters create cluster_name --bucket="profiling-
job-default" \
--zone=europe-west1-c \
--master-boot-disk-size=500GB \
--worker-boot-disk-size=500GB \
--master-machine-type=n1-standard-16 \
--num-workers=10 \
--worker-machine-type=n1-standard-16 \
--initialization-actions gs://custom_init_gcp.sh \
--metadata MINICONDA_VARIANT=2 \
--properties=^--^yarn:yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
Run Code Online (Sandbox Code Playgroud)
但是,当我使用自定义火花标记提交我的作业时,看起来YARN不尊重这些自定义参数,默认使用内存作为资源计算的标准
gcloud dataproc jobs submit pyspark --cluster cluster_name \
--properties spark.sql.broadcastTimeout=900,spark.network.timeout=800\
,yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator\
,spark.dynamicAllocation.enabled=true\
,spark.executor.instances=10\
,spark.executor.cores=14\
,spark.executor.memory=15g\
,spark.driver.memory=50g \
src/my_python_file.py
Run Code Online (Sandbox Code Playgroud)
可以帮助有人弄清楚这里发生了什么?