Java Hadoop集群上运行的JVM总数?Hadoop中的JVM生命周期
我认为这是一个非常基本的问题,但为了弄清楚我有几个问题,谁能澄清一下Java Hadoop集群上运行的JVM总数?Hadoop中的JVM生命周期,java,hadoop,jvm,Java,Hadoop,Jvm,我认为这是一个非常基本的问题,但为了弄清楚我有几个问题,谁能澄清一下 Hadoop整个集群(Gen1和Gen2)上总共运行了多少个JVM 例如,如果我有10个节点的集群,那么对于单个节点和整个10个节点的集群,JVM应该运行的最大或最小数量是多少 我们可以在运行时控制JVM上的创建。比如说,如果我有更多的JVM,我的数据可以快速处理吗?我可以重用同一个JVM吗?或者我需要在工作完成后立即销毁它。(有JVM生命周期图吗?) JVM是如何准确创建并在Hadoop中使用的。JVM在hadoop集群中的
把JVM想象成一个抽象的计算机器,基于java的服务可以在它上面运行。回答你的问题:- 1) 为了简单起见,让我们假设只有一个存储和一个处理节点 Hadoop 1.0 总共有4个服务NameNode、SecondaryNameNode、DataNode、JobTracker和TaskTracker。每个服务都在JVM上运行。4个JVM用于 NameNode、SecondaryNameNode、DataNode、JobTracker各一个 TaskTracker是群集中的一项服务,它从JobTracker接受任务—映射、减少和无序移动操作 生成一个单独的JVM进程来执行实际工作 假设tasktracker只有一个可用插槽来执行实际工作,即运行mapper或reducer 因此,JVM的总数=NameNode(1)+SecondaryNameNode(1)+DataNode(1)+JobTracker(1)+TaskTracker(2)= 六, Hadoop 2.0 总服务-Namenode、SecondaryNameNode、资源管理器(ResourceManager、ApplicationManager和Scheduler)、节点 数据节点管理器(应用程序管理员和容器) 每个服务有1个JVM,因此:- Namenode(1)+SecondaryNameNode(1)+ResourceManager(1)+ApplicationManager(1)+调度器(1)+节点管理器(1)+ApplicationMaster(1)+容器(1)+Datanode(1)=9 > 处理在容器(JVM)上执行,而节点管理器(JVM)负责操作。每个应用程序都需要自己的 应用程序管理员(JVM) 2) 第一点描述了JVM的最小数量。我们无法确定最大数量,因为您可以继续在集群中添加存储和工作节点,因此JVM的数量将增加 3) 如果集群中有更多的资源,那么可以运行多个JVM,这样就可以运行更多的存储(datanode)和处理(nodemanager和容器)服务。是的,您可以通过配置属性mapred.job.reuse.JVM.num.tasks来控制JVM重用
4) 由于hadoop框架的所有服务都只在JVM上运行,JVM是必不可少的。您不能创建JVM,操作系统会为您创建JVM。您只需要启动JVM进程。是否强制要求每个hadoop服务(如namenode、datanode或resource manager)都有一个JVM,或者每个hadoop服务的JVM数是否可配置?namenode,datanode和任何其他资源管理器都是demon程序,这些服务总是在集群中运行。我认为集群中运行的单个demon不会有多个JVM。@Abhisekh…这样想吧-您的Helloworld java程序怎么能同时在两个以上的JVM中运行?…Namenode等都是java应用程序,因此只能在单个JVM中运行。