java—在hadoop集群上运行的jvm总数?hadoop中的jvm生命周期

zrfyljdw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(452)

我认为这是一个非常基本的问题,但为了弄清楚我有几个问题谁能澄清?
hadoop整个集群上总共有多少个jvm运行-gen1和gen2?
例如,如果我有10个节点的集群,那么jvm的最大或最小值是多少?这些值应该为单个节点和整个10个节点的集群运行?
我们可以在运行时控制jvm上的创建。比如说,如果我有更多的jvm,我的数据能被快速处理吗?我能重用同一个jvm吗?或者我需要在我的工作完成后立即销毁它吗
jvm是如何在hadoop中创建和使用的。jvm在hadoop集群中的重要作用是什么(尽管一切都在jvm上运行)。

knpiaxh1

knpiaxh11#

把jvm想象成一台抽象计算机器,基于java的服务可以在它上面运行questions:-
1) 为了简单起见,假设只有一个存储和一个处理节点
hadoop 1.0版
总共有4个服务namenode、secondarynamenode、datanode、jobtracker和tasktracker。每个服务都在jvm上运行。namenode、secondarynamenode、datanode和jobtracker各有4个jvm。
tasktracker是集群中的一个服务,它从jobtracker接受任务Map、reduce和shuffle操作。
假设tasktracker只有一个可用的插槽来执行实际工作,即运行mapper或reducer。
因此,JVM的总数=namenode(1)+secondarynamenode(1)+datanode(1)+jobtracker(1)+tasktracker(2)=6
hadoop 2.0版
总服务-namenode、secondarynamenode、资源管理器(resourcemanager、applicationmanager和scheduler)、节点管理器(applicationmaster和container)、datanode
每个服务1个jvm,hence:-
namenode(1)+secondarynamenode(1)+resourcemanager(1)+applicationmanager(1)+调度器(1)+节点管理器(1)+applicationmaster(1)+容器(1)+数据节点(1)=9

处理在容器(jvm)上执行,而节点管理器(jvm)负责操作。每个应用程序都需要自己的applicationmaster(jvm)
2) 第一点描述了JVM的最小数量。我们无法确定最大数量,因为您可以继续在集群中添加存储和工作节点,因此JVM的数量将增加。
3) 如果集群中有更多的资源,可以运行多个jvm,这样就可以运行更多的存储(datanode)和处理(nodemanager和container)服务。是的,您可以通过配置属性mapred.job.reuse.jvm.num.tasks来控制jvm重用
4) 由于hadoop框架的所有服务都只在jvm上运行,因此jvm是必不可少的。您不能创建jvm,操作系统会为您创建jvm。您只需要启动jvm进程。

相关问题