您可能需要请求作业的mapper/reducer容器所需的vcore数量,或者bump up yarn.scheduler.minimum-allocation-vcore:这样每个容器请求都将获得可用vcore的特定最小vcore。 emr上带有默认defaultresourcecalculator的resourcemanager将始终为每个容器分配1个vcore,而不管applicationmaster要求容器使用什么。因此,您需要手动(通过重新启动资源管理器)或在启动时使用emr配置api将其切换到capacity-scheduler.xml上的dominantresourcecalculator,以便它能够处理来自应用程序的vcore请求。 请参见类似内容:如何在hadoopmapreduce/yarn中设置vcore?
2条答案
按热度按时间q8l4jmvw1#
您可能需要请求作业的mapper/reducer容器所需的vcore数量,或者bump up yarn.scheduler.minimum-allocation-vcore:这样每个容器请求都将获得可用vcore的特定最小vcore。
emr上带有默认defaultresourcecalculator的resourcemanager将始终为每个容器分配1个vcore,而不管applicationmaster要求容器使用什么。因此,您需要手动(通过重新启动资源管理器)或在启动时使用emr配置api将其切换到capacity-scheduler.xml上的dominantresourcecalculator,以便它能够处理来自应用程序的vcore请求。
请参见类似内容:如何在hadoopmapreduce/yarn中设置vcore?
wf82jlnq2#
一些背景:您在yarn中定义了“最大容器大小(vcores)”值—可以分配给单个容器的最大vcores。这个数字显然小于可用vCore的总数。运行作业时,Yarn会计算容器和vCore的必要数量。示例:vcores总数:100。每个容器的最大V孔数:10。作业使用了3个容器,最多分配30个vcores。
回答您的问题:检查您的工作正在使用的容器数量,并调整“最大容器大小(vcores)”值。