認爲是一個抽象的計算機上基於Java的服務可以run.To回答您的問題: -
1)爲簡單起見讓我們假設的目的只有一個存儲和一個處理節點
的Hadoop 1.0
有總4個服務NameNode,SecondaryNameNode,DataNode,JobTracker和TaskTracker.Each服務在JVM上運行。 4個JVM,分別爲 NameNode,SecondaryNameNode,DataNode,JobTracker。
一個的TaskTracker是接受任務的集羣中的服務 - 地圖,減少和整理操作 - 從JobTracker.The的TaskTracker 產生一個獨立的JVM進程做實際的工作。
假設任務跟蹤器只有一個插槽可用於執行實際工作,即運行映射器或縮減器。
因此,的JVM = NameNode的(1)+ SecondaryNameNode(1)+數據管理部(1)+的JobTracker(1)+的TaskTracker(2)=
的Hadoop 2.0
總數總服務 - 的Namenode,SecondaryNameNode,資源管理器(ResourceManager中,ApplicationManager和調度器),節點 管理器(ApplicationMaster和容器),的Datanode
1對於每個服務,因此JVM: -
(1)+應用程序管理器(1)+調度器(1)+節點管理器(1)+應用程序主(1)+容器(1)+數據節點(1)= 9
> 處理是在容器(JVM),而節點管理器(JVM)看起來的操作之後進行。各紗線的應用都需要自己的 ApplicationMaster(JVM)
2)點一個描述分鐘數量的JVM。我們無法確定地告訴最大數量,因爲您可以繼續添加集羣中的存儲和工作節點,因此JVM的數量將會增加。
3)如果羣集中有更多資源,則可以運行多個JVM,這樣可以運行更多存儲(datanode)和處理(nodemanager和容器)服務。是的,你可以通過配置屬性來控制JVM重用mapred.job.reuse.jvm.num.tasks
4)由於在JVM上Hadoop框架運行的所有服務而已,JVM中是必不可少的。你不能創建JVM,操作系統爲你做。你只需要啓動JVM進程。
是否強制每個hadoop服務(如namenode,datanode或資源管理器)每個都有一個jvm或每個hadoop服務可配置的jvms數量是多少? – Abhisekh
namenode,datanode和其他任何資源管理器都是惡魔程序,這些服務總是在羣集中運行。我不認爲在集羣中運行單個惡魔將會有多個JVM。 –
@Abhisekh ...這樣想 - 你的Helloworld java程序如何在兩個以上的JVM中同時運行?.... Namenode等是Java應用程序,因此只能在單個JVM中運行。 – 2017-09-19 02:54:38