纱线应用程序主和容器分配

时间:2016-02-19 16:32:25

标签: hadoop resources admin yarn

在YARN中,应用程序主机向资源管理器请求资源,以便可以启动该应用程序的容器。

  1. 应用程序主服务器在启动第一个容器之前是否等待分配所有资源,或者是否请求每个容器,并且当它获取容器的资源时,它会开始启动该特定资源容器? 即只有部分资源可用的情况?是否等待资源被释放?或根据可用资源继续进行?

  2. MR应用程序主服务器如何确定MR作业的资源要求? YARN MR客户端是否确定并将其发送到AM或AM找到它?如果是这样,这基于什么?我相信这是可配置的,但我可能会谈到没有提供内存,CPU时的默认情况。

1 个答案:

答案 0 :(得分:1)

不,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应用程序主机要求的最大容器数是否为(映射器的输入拆分数)+(减速器数)。 MR app master将在完成容器时释放容器(例如,如果你有1,000个映射器容器但只有20个reducer,它将在不再需要时释放其他980个容器)。