我有一个21节点的Hive LLAP EMR群集。Hive LLAP守护程序不占用可用的群集VCPU分配。YARN可使用160个内核,但每个LLAP守护程序仅使用1个vCore。每个节点具有64 GB内存和8个vCore。每个节点运行1个LLAP守护进程,并且其分配的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;
为什么守护程序分配的vcore不超过1?执行者将能够使用可用的vcore,还是只能使用分配给守护程序的1个vcore。
如果您在YARN ui中看到此内容,则可能必须添加此内容
yarn.scheduler.capacity.resource-calculator: org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
我也有同样的困惑。实际上,在Yarn UI中使用DefaultResourceCalculator
时,它仅计算内存使用情况,在后台它可能使用了1个以上的内核,但您只会看到使用了1个内核。另一方面,DominantResourceCalculator
计算内核和内存以进行资源分配,并显示内核和内存的实际数量。
您可以启用神经节或查看EMR指标以了解更多详细信息。