什么是Yarn中的容器?

5n0oy7gb  于 2021-06-04  发布在  Hadoop
关注(0)|答案(9)|浏览(382)

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

j7dteeu8

j7dteeu81#

在hadoop2.x中,容器是工作单元发生的地方。例如,每个mapreduce任务(不是整个作业)都在一个容器中运行。
应用程序/作业将在一个或多个容器上运行。
为每个容器分配一组系统资源,目前支持cpu内核和ram。hadoop集群中的每个节点都可以运行多个容器。
在hadoop1.x中,jobtracker分配一个插槽来运行每个mapreduce任务。然后tasktracker为每个任务生成一个单独的jvm(除非未启用jvm重用)。

jc3wubiy

jc3wubiy2#

简单来说,容器是运行应用程序的地方。它在每个节点中都可用。应用程序主程序与调度器(资源管理器的组件之一)协商容器。容器由节点管理器启动。

5hcedyr0

5hcedyr03#

“容器”这个词在两个上下文中被用来形容Yarn,
容器:表示分配给applicationmaster的资源。resourcemanager负责向applicationmaster发布资源/容器。检查容器api。
启动容器:基于已分配的资源(容器),applicationmaster请求nodemanager启动容器,从而在节点上执行任务。检查containermanager api。

vq8itlhq

vq8itlhq4#

它表示给定集群中单个节点上的资源(内存)。
容器是
由节点管理器监督
由资源管理器安排
一个mr任务在这样的容器中运行。

aor9mmx1

aor9mmx15#

Container :

资源的逻辑租用和节点上产生的实际进程可以互换使用。这与tasks(或am)运行的过程相同。为了启动container,我们提供了container对象和clc(containerlaunchcontext),在其中我们设置了运行任务(或am)的命令列表。

nmClient.startContainer(container, clcObj)

ContainerLaunchContext code snippet :

<code>
.
.
.
 /**
   * Add the list of <em>commands</em> for launching the container. All
   * pre-existing List entries are cleared before adding the new List
   * @param commands the list of <em>commands</em> for launching the container
   */
  @Public
  @Stable
  public abstract void setCommands(List<String> commands);
</code>
ttvkxqim

ttvkxqim6#

一个节点上可以有多个容器(或者一个非常大的容器)。
系统中的每个节点都被认为是由多个最小内存大小(比如512mb或1GB)的容器组成的。applicationmaster可以请求任何容器作为最小内存大小的倍数。
源,请参阅resourcemanager/资源模型一节。

2ledvvac

2ledvvac7#

根据输入数据的大小,创建多个输入拆分。mr作业需要处理整个数据,以便创建多个任务(map&reduce任务)。因此,对于每个输入,拆分将由一个任务处理。现在如何运行这个任务,由资源管理器建议。资源管理器知道哪个节点管理器是空闲的,哪个节点管理器是忙的,它像学院的校长和节点管理器一样是学院的班主任,校长知道哪个老师是空闲的。因此,它要求节点管理器在容器(即内存区域)中运行该任务(整个作业的一小部分),以便jvm运行。因此,该作业作为容器内的应用程序主机运行。

8fsztsew

8fsztsew8#

容器是应用程序运行其任务的地方。如果您想知道集群中正在运行的容器的总数,那么可以签入集群资源管理器ui。
Yarnurl:http://your-active-resourcemanager-ip:45020/群集/应用程序/运行
在“正在运行的容器”列中,显示正在运行的容器的总数详细信息。
注意:如果您使用的是spark,那么spark执行器将在容器内运行。一个容器可以容纳多个spark执行器。

l2osamch

l2osamch9#

容器是资源分配,它是resourcemanager授予特定resourcerequest的成功结果。容器授予应用程序在特定主机上使用特定数量资源(内存、cpu等)的权限。

相关问题