有人可以帮我理解YARN中JVM和容器之间的关系吗?
指向一些有用的链接也会有所帮助。
答案 0 :(得分: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/