答案 0 :(得分:0)
一些背景知识 您在纱线中定义了“最大容器尺寸(VCores)" value - 可以分配给单个容器的最大vcores。这个数字显然小于可用vcores的总数。当您运行作业时,纱线会计算所需的容器和vcores数量。 示例:总vcores:100。每个容器的最大Vcores:10。作业使用3个容器,分配最大vcores - 使用30个vcores。
回答您的问题:检查作业使用的容器数量,并调整"最大容器尺寸(VCores)"值。
答案 1 :(得分:0)
您可能需要请求作业的mapper / reducer容器所需的vcore数量,或者提高yarn.scheduler.minimum-allocation-vcores:这样每个容器请求都会被给出可用的vcore的某个最小vcore。
默认 DefaultResourceCalculator 的EMR上的ResourceManager将始终为每个容器分配1个vcore,无论ApplicationMaster要求容器是什么。因此,您需要手动(使用资源管理器重新启动)或使用EMR configurations API将其转移到 capacity-scheduler.xml 上的 DominantResourceCalculator 启动,以便它可以满足您的应用程序的vcore请求 见类似:How to set the VCORES in hadoop mapreduce/yarn?