【问题标题】:Yarn Application master and container allocationYarn Application master 和容器分配
【发布时间】:2016-02-19 16:32:25
【问题描述】:

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

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

  2. MR 应用程序主机如何决定 MR 作业的资源需求? YARN MR 客户端是否确定并发送给 AM 或 AM 找到?如果是这样,这是基于什么?我相信这是可配置的,但我可能在谈论没有提供内存、CPU 的默认情况。

【问题讨论】:

    标签: hadoop resources admin hadoop-yarn


    【解决方案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。这些值如何转换为授予的资源有点复杂,并且基于正在使用的调度程序、最小容器分配设置等。

    我不确定除了(映射器的输入拆分数)+(reducer 的数量)之外,MR 应用程序主控是否会请求最大数量的容器。 MR app master 将在使用完容器后释放容器(例如,如果您有 1,000 个 mapper 容器但只有 20 个 reducer,它将在不再需要其他 980 个容器时释放它们)。

    【讨论】:

    • @Augus 谢谢。我假设在只有部分资源可用并且工作已完成一半但仍在等待其余资源可用的情况下,作业超时。
    猜你喜欢
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2018-09-09
    相关资源
    最近更新 更多