以下是我的配置:
**mapred-site.xml**
map-mb : 4096 opts:-Xmx3072m
reduce-mb : 8192 opts:-Xmx6144m
**yarn-site.xml**
resource memory-mb : 40GB
min allocation-mb : 1GB
hadoop集群中的Vcores显示为8GB,但我不知道如何计算或在何处配置它。
希望有人可以帮助我。
最佳答案
简短答案
如果您只是在单节点群集甚至小型个人分布式群集上开箱即用运行hadoop,则最可能无关紧要。您只需要担心内存。
详细答案
vCore用于较大的群集,以限制不同用户或应用程序的CPU。如果您自己使用YARN,则没有真正的理由来限制容器CPU。这就是为什么在Hadoop中默认情况下甚至不考虑vCore的原因!
尝试将可用的nodemanager vcore设置为1。您的容器数量仍将是2或4 ..或任何值:yarn.nodemanager.resource.memory-mb
/mapreduce.[map|reduce].memory.mb
如果确实希望容器的数量考虑vCore,并受以下因素的限制:yarn.nodemanager.resource.cpu-vcores
/mapreduce.[map|reduce].cpu.vcores
那么您需要使用其他资源计算器。转到capacity-scheduler.xml
配置,并将DefaultResourceCalculator更改为DominantResourceCalculator。
除了使用vCores进行容器分配外,您还想使用vCores真正限制每个节点的CPU使用率吗?您需要更改更多配置以使用LinuxContainerExecutor而不是DefaultContainerExecutor,因为它可以管理用于限制CPU资源的linux cgroup。如果您需要更多信息,请关注this page。
关于hadoop - 如何在hadoop mapreduce/yarn中设置VCORES?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26522967/