【问题标题】:In YARN, how is the container size determined?在 YARN 中,容器大小是如何确定的?
【发布时间】:2015-12-21 07:34:15
【问题描述】:

在YARN应用中,ApplicationMaster如何决定容器的大小?我知道有一些参数可以控制最小内存分配、vcores 比率等。但是应用程序大师如何理解它需要如此多的内存和如此多的 CPU 来完成一项特定的工作 - 无论是 MapReduce / Spark?

【问题讨论】:

  • 我在这里回答了类似的问题,用于 MapReduce 作业:stackoverflow.com/questions/33004487/…
  • 感谢@ManjunathBallur 的回答。这是我在阅读您的 cmets 并在另一个线程中回复后的理解。根据要处理的数据大小,将确定映射器的数量(每个输入拆分 1 个映射器),并且将以编程方式提供减速器的数量。假设它们分别是 m 和 r。因此,我们将有 m+r 个容器由 AM 请求给 RM。每个容器的资源大小将由您帖子中提到的参数决定,即内存和 vcore。我的理解正确吗?
  • 没错。对于 mapreducer 作业,容器的数量将等于 mapper 的数量 + reducer 的数量。只有在 Uber 工作的情况下,容器才能重新用于映射器。 mapper 和 reducer 所需的内存量和 vCore 数量取决于 mapre-site.xml 和 yarn-site.xml 中的设置

标签: hadoop hadoop-yarn


【解决方案1】:

首先让我用一两行来解释 YARN 的工作原理,然后我们会回答问题。

假设我们有 100GB 的总 YARN 集群内存和 1GB 的 minimum-allocation-mb,那么我们有 100 个最大容器。如果我们将最小分配设置为 4GB,那么我们有 25 个最大容器。

每个应用程序将获得它要求的内存,向上舍入到下一个容器大小。因此,如果最小值为 4GB,而您要求 4.5GB,您将获得 8GB。

如果作业/任务的内存需求大于分配的容器大小,在这种情况下它将击落这个容器。

现在回到您最初的问题,YARN 应用程序主控如何决定特定作业需要多少内存和 CPU。

YARN 资源管理器 (RM) 通过逻辑队列将资源分配给应用程序,其中包括内存、CPU 和磁盘资源。

默认情况下,RM 最多允许 8192MB(“yarn.scheduler.maximum-allocation-mb”)用于 Application Master (AM) 容器分配请求。

默认最小分配为 1024MB(“yarn.scheduler.minimum-allocation-mb”)。

AM 只能向 RM 请求以 ("yarn.scheduler.minimum-allocation-mb") 为增量且不超过 ("yarn.scheduler.maximum-allocation-mb") 的资源。

AM 负责将 ("mapreduce.map.memory.mb") 和 ("mapreduce.reduce.memory.mb") 舍入为可被 ("yarn.scheduler.minimum-allocation-mb" 整除的值”)。

RM 将拒绝分配大于 8192MB 且不能被 1024MB 整除的值。

需要设置以下 YARN 和 Map-Reduce 参数以更改默认内存要求:-

对于纱线

  1. yarn.scheduler.minimum-allocation-mb
  2. yarn.scheduler.maximum-allocation-mb
  3. yarn.nodemanager.vmem-pmem-ratio
  4. yarn.nodemanager.resource.memory.mb

对于 MapReduce

  1. mapreduce.map.java.opts
  2. mapreduce.map.memory.mb
  3. mapreduce.reduce.java.opts
  4. mapreduce.reduce.memory.mb

因此得出的结论是,应用程序主机不使用任何逻辑来计算特定作业的资源(内存/CPU)需求。它只是使用上面提到的参数值。 如果任何作业没有在给定的容器大小(包括虚拟内存)中完成,那么节点管理器会简单地杀死容器。

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 2023-03-30
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2018-12-01
    相关资源
    最近更新 更多