我有一个21节点的Hive LLAP EMR集群。配置单元LLAP守护进程未使用可用的群集VCPU分配。YARN可使用160个内核,但每个LLAP守护进程仅使用1个vCore。每个节点具有64 GB内存和8个vCore。每个节点运行1个LLAP deamon,分配了70%的内存,但只有1个vCore。一些属性:
yarn.nodemanager.resource.cpu-vcores=8;
yarn.scheduler.minimum-allocation-vcores=1;
yarn.scheduler.maximum-allocation-vcores=128;
hive.llap.daemon.vcpus.per.instance=4;
hive.llap.daemon.num.executors=4;
为什么守护进程没有分配超过1个vcore?执行器是否能够使用可用的vcore,或者只能使用分配给守护进程的1个vcore。
如果你在YARN ui中看到这个,你可能需要添加这个
yarn.scheduler.capacity.resource-calculator: org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
我也有同样的困惑。事实上,当在Yarn UI中使用DefaultResourceCalculator
时,它只计算内存使用量,在场景背后,它可能使用了多个内核,但您将只看到使用了一个内核。另一方面,DominantResourceCalculator
对核心和内存进行资源分配,并显示核心和内存的实际数量。
您可以启用ganglia或查看EMR指标以了解更多详细信息。