7

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

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

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

4

1 回答 1

4

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

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

现在,如果您不是在 uber 模式下运行,请考虑以下几点:-

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-sumption-gotchas/

于 2017-02-10T18:04:42.123 回答