java - yarn : Containers and JVM

标签 java hadoop jvm hadoop-yarn hadoop-2.7.2

谁能帮我理解一下 YARN 中 JVM 和容器之间的关系?

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

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

最佳答案

Is it one JVM for each container? or multiple containers in a single JVM? or there is no relation between JVM and containers?

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

现在,如果您没有以 super 模式运行,请考虑以下事项:-

How JVMs are created, is it one JVM for each task? can multiple tasks run in the same JVM at the same time? (I'm aware of ubertasking where many tasks (maps/reduce) can run in same JVM one after the other).

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

when a resource manager allocates containers for a job, does multiple tasks inside the same job use same container for tasks running in same node? or separate containers for each task based on availability?

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

这里有一些非常有用的链接-
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/

关于java - yarn : Containers and JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156588/

相关文章:

java - 为什么我们说链表插入是常数时间?

hadoop - 在hadoop hdfs中查看数据格式的最佳方法是什么?

java - 有没有在没有内存开销的情况下在 Java 中存储位?

java - java分配内存的方式如何选择?

java - JVMTI 代理和单独的 JVM 之间的通信

java - Hibernate:子集合的级联删除

java 正则表达式 帮助

java - Quartz JobExecutionContext setResult 与 put

hadoop - 运行配置单元脚本 "am_stats_analyzer_163"cassandra 时出现 WSO2 BAM 错误

Hadoop - 经典 MapReduce 字数统计