在yarn中,应用程序主机向资源管理器请求资源,以便启动该应用程序的容器。应用程序主机是否在启动第一个容器或每个容器的请求之前等待分配所有资源,并且当它获得容器的资源时,它开始启动该特定容器?i、 当只有一部分资源可用时,情况如何?它是否等待资源被释放?或者根据可用资源继续?mr应用程序主机如何决定mr作业的资源需求?客户是否确定并将其发送给am或am找到它?如果是,这是基于什么?我相信这是可配置的,但我可能是在谈论默认情况下,当内存,cpu没有提供。
q3aa05251#
不,am不会等待分配所有资源。相反,它会在资源管理器向其提供资源时安排/启动容器。当驱动程序创建作业时,为每个容器请求的大小在作业配置中定义。如果没有为作业显式设置值,则使用mapred site和mapred default中的值(请参见https://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml)对于mapreduce.map.memory.mb、mapreduce.reduce.memory.mb mapreduce.map.cpu.vcores和mapreduce.reduce.cpu.vcores的默认值。如何将这些值转换为授予的资源有点复杂,这取决于所使用的调度器、最小容器分配设置等。我不确定mr app master是否会请求除(#mappers的输入拆分)+(reducer的数量)之外的最大容器数。mr app master将在处理完容器后释放容器(例如,如果您有1000个mapper容器,但只有20个reducer,那么一旦不再需要它们,它将释放其他980个容器)。
1条答案
按热度按时间q3aa05251#
不,am不会等待分配所有资源。相反,它会在资源管理器向其提供资源时安排/启动容器。
当驱动程序创建作业时,为每个容器请求的大小在作业配置中定义。如果没有为作业显式设置值,则使用mapred site和mapred default中的值(请参见https://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml)对于mapreduce.map.memory.mb、mapreduce.reduce.memory.mb mapreduce.map.cpu.vcores和mapreduce.reduce.cpu.vcores的默认值。如何将这些值转换为授予的资源有点复杂,这取决于所使用的调度器、最小容器分配设置等。
我不确定mr app master是否会请求除(#mappers的输入拆分)+(reducer的数量)之外的最大容器数。mr app master将在处理完容器后释放容器(例如,如果您有1000个mapper容器,但只有20个reducer,那么一旦不再需要它们,它将释放其他980个容器)。