我使用以下命令启动sparkling-shell。
./ bin / sparkling-shell --num-executors 4 --executor-memory 4g --master yarn-client
我只有两个遗嘱执行人。这是H2o问题,YARN问题还是Spark问题?
麦克
答案 0 :(得分:1)
此行为可能有多种原因。
YARN只能根据可用资源(内存,vcores)为您提供执行程序数量。如果你要求更多,那么你就拥有了资源,它将为你提供最大限度的资源。
启用动态分配时也可能出现这种情况。这意味着Spark将在需要时创建新的执行程序。
为了解决Sparkling Water的一些技术问题,我们需要在应用程序开始时通过创建人工计算并尝试利用整个集群来发现所有可用的执行程序。这也可能会减少执行者的数量。
我建议您查看https://github.com/h2oai/sparkling-water/blob/master/doc/tutorials/backends.rst,在那里您可以阅读更多有关上述段落以及如何使用所谓的外部苏打水后端解决该问题。
您还可以查看https://github.com/h2oai/sparkling-water/blob/master/doc/configuration/internal_backend_tuning.rst。这是用于调整配置的Sparkling Water指南。
库巴
答案 1 :(得分:0)
我通过更改cloudera manager
中的以下四个值来克服了这个问题Setting Value
yarn.scheduler.maximum-allocation-vcores 8
yarn.nodemanager.resource.cpu-vcores 4
yarn.nodemanager.resource.cpu-vcores 4
yarn.scheduler.maximum-allocation-mb 16 GB