嗨,我们最近从mr1升级到纱线.我知道容器是一个抽象的概念,但我不明白一个容器可以产生多少jvm任务(map,reduce,filter等),或者其他方式要求是容器可以跨多个映射重复使用或减少任务.我在下面的博客中读到:YARN中的容器是什么?
"each mapper and reducer runs on its own container to be accurate!" 这意味着如果我查看AM日志,我应该看到分配的容器数等于map任务的数量(失败|成功)加上reduce任务的数量是正确的吗?
我知道应用程序生命周期中容器的数量会根据AM请求,拆分,调度程序等而发生变化.
但有没有办法请求给定应用程序的最小容器的初始数量.我认为一种方法是配置公平调度程序队列.但还有什么能够决定这个吗?
在MR的情况下,如果我有mapreduce.map.memory.mb = 3gb和
mapreduce.map.cpu.vcores=4.我也有yarn.scheduler.minimum-allocation-mb = 1024m和yarn.scheduler.minimum-allocation-vcores = 1.
这是否意味着我将获得一个带有4个核心的容器或带有一个核心的4个容器?
还不清楚你在哪里可以指定mapreduce.map.memory.mb和mapreduce.map.cpu.vcores.它们应该设置在客户端节点中还是可以按应用程序设置?
同样来自RM UI或AM UI是否有办法查看当前为给定应用程序分配的容器?