YARN:容器和JVM

Mik*_*ikA 5 java hadoop jvm hadoop-yarn hadoop-2.7.2

有人能帮我理解YARN中JVM和容器之间的关系吗?

  • 如何创建JVM,它是每个任务的一个JVM吗?多个任务可以同时在同一个JVM中运行吗?(我知道ubertasking很多任务(maps/reduce)可以一个接一个地在同一个JVM中运行).
  • 它是每个容器的一个JVM吗?或单个JVM中的多个容器?或者JVM和容器之间没有关系?
  • 当资源管理器为作业分配容器时,同一作业中的多个任务是否对同一节点中运行的任务使用相同的容器?或根据可用性为每个任务分开容器?

指向一些有用的链接也会有所帮助.

Shu*_*sia 4

每个容器都有一个 JVM 吗?或者单个 JVM 中的多个容器?或者说JVM和容器之间没有关系?

当然存在一种关系,而且是一对一的。对于每个需要创建的容器,都会生成一个新的 java 进程(JVM)。

现在,如果您没有在超级模式下运行,请考虑以下内容:-

JVM 是如何创建的,每个任务都有一个 JVM 吗?同一个JVM中可以同时运行多个任务吗?(我知道 ubertasking,其中许多任务(maps/reduce)可以在同一个 JVM 中一个接一个地运行)。

您看,任务被安排在集群中的某个节点上运行。根据任务的需求(内存和CPU),确定容器的容量。此外,还有一些特定的参数,您可以在下面的链接中找到。
每个任务尝试都在 JVM 上进行安排。

当资源管理器为作业分配容器时,同一作业内的多个任务是否对同一节点中运行的任务使用相同的容器?或者根据可用性为每个任务单独的容器?

根据集群中的资源可用性为每个任务生成单独的容器。

以下是一些非常有用的链接 -
http://ercoppa.github.io/HadoopInternals/AnatomyMapReduceJob.html
https://blog.cloudera.com/blog/2015/09/untangling-apache-hadoop-yarn-part- 1/
http://blog.cloudera.com/blog/2014/04/apache-hadoop-yarn-avoiding-6-time-consuming-gotchas/