核心利用不足

m1m5dgzv  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(393)

不管我怎么摆弄房间里的设置 yarn-site.xml i、 e使用以下所有选项

  1. yarn.scheduler.minimum-allocation-vcores
  2. yarn.nodemanager.resource.memory-mb
  3. yarn.nodemanager.resource.cpu-vcores
  4. yarn.scheduler.maximum-allocation-mb
  5. yarn.scheduler.maximum-allocation-vcores

我只是仍然不能得到我的应用程序,即Spark利用集群上的所有核心。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

  1. 注意 `spark.executor.cores` 设置为3,但不起作用。我该怎么解决这个问题?
vwkv1x7d

vwkv1x7d1#

问题不在于 yarn-site.xml 或者 spark-defaults.conf 但实际上,使用资源计算器,将核心分配给执行器,或者在mapreduce作业的情况下,分配给mappers/reducer。
默认资源计算器,即 org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator 仅使用内存信息分配容器,默认情况下不启用cpu调度。要同时使用内存和cpu,需要将资源计算器更改为 org.apache.hadoop.yarn.util.resource.DominantResourceCalculatorcapacity-scheduler.xml 文件。
这是需要改变的。

  1. <property>
  2. <name>yarn.scheduler.capacity.resource-calculator</name>
  3. <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
  4. </property>
q43xntqr

q43xntqr2#

我有类似的问题,从我的代码,我正在设置 spark.executor.cores as 5 . 即使它只是取1,这是默认的核心。在spark ui和environment选项卡中,我看到了5个内核。但在检查executors选项卡时,我只能看到1个进程在运行状态,而不是一个executor。我用的是spark版本1.6.3。
所以我试着点击spark submit命令 --conf spark.executor.cores=5 使用5个核就可以了
或者只是 --executor-cores 5 这同样有效。

相关问题