YARN的容器是什么?

rah*_*hul 37 hadoop mapreduce hadoop-yarn

YARN的容器是什么?它是与nodemanager上运行的任务运行的子JVM相同还是不同?

Lor*_*dig 25

它表示给定集群上单个节点上的资源(内存).
一个容器是

  • 由节点管理员监督
  • 由资源管理器安排

一个MR任务在这样的容器中运行.

  • 实际上原来的定义是正确的.MR*作业*包含一组任务,每个任务在一个容器中运行. (11认同)
  • MR任务不在这样的容器中运行。它在一组容器上运行,因为每个map或reduce函数都在一个容器上运行。一个任务可以在一个容器上以* uber *模式运行,但是一个任务通常由`MRAppMaster`跨越数百或数千个容器。另外,容器由丰富的资源矢量描述,并不专门代表内存。 (3认同)

ali*_*n01 16

单个节点上可以有多个容器(或者一个非常大的容器).

系统中的每个节点都被认为由最小内存大小的多个容器组成(比如512MB或1 GB).ApplicationMaster可以将任何容器请求为最小内存大小的倍数.

,请参阅ResourceManager /资源模型部分.


小智 5

YARN在两个上下文中使用了“容器”一词,

容器:表示分配给ApplicationMaster的资源。ResourceManager负责向ApplicationMaster发行资源/容器。检查容器 API。

启动容器:基于分配的资源(容器),ApplicationMaster请求NodeManager启动容器,从而在节点上执行任务。检查ContainerManager API。


Pav*_*ara 5

在Hadoop 2.x中,容器是一个工作单元所在的地方。例如,每个MapReduce任务(而不是整个作业)都在一个容器中运行。

一个应用程序/作业将在一个或多个容器上运行。

为每个容器分配了一组系统资源,当前支持CPU内核和RAM。Hadoop集群中的每个节点可以运行多个容器。

在Hadoop 1.xa中,JobTracker分配了一个插槽来运行每个MapReduce任务。然后TaskTracker为每个任务生成一个单独的JVM(除非未启用JVM重用)。