我有一對夫婦的關於作業提交到HDFS和Hadoop的紗線結構問題:紗和Hadoop
所以在Hadoop的生態系統,你必須爲每個集羣一個NameNode的,可以包含任意數量的存儲數據的節點你的數據。將作業提交給Hadoop時,NameNode上的作業跟蹤器將選擇每個作業並將其分配給數據節點上存在該文件的任務跟蹤器。
所以我的問題是YARN的組件如何在HDFS中一起工作:?
所以YARN由NodeManager和資源管理器組成。在這兩個組件之外:NodeManager是否在每個DataNode上運行,並且ResourceManager在每個集羣的每個NameNode上運行?因此,當任務跟蹤器(在每個DataNode中)從作業跟蹤器(在NameNode中)分配任務時,特定數據節點中的NodeManager將創建一個容器,該容器將從NameNode中的ResourceManager請求資源。因此,只有當數據節點中的任務跟蹤器從NameNode中的作業跟蹤器獲取作業時,此資源管理器和節點管理器纔會發揮作用,其中NodeManager將向ResourceManager請求要執行作業的資源。它是否正確?
你好Vignesh,這很清楚!因此,如果沒有JobTracker或TaskTracker,ResourceManager會處理所有作業「分發」並與每個DataNode上的NodeManager進行通信,以查看它是否可以在該DataNode上分配資源和容器以運行「任務」。那麼現在,當客戶端向HDFS提交作業時,它首先會與ResourceManager或NameNode進行通信?由於首先需要確定NameNode只能使用其元數據訪問HDFS上的文件的位置? – LP45
不需要它,它不需要Namenode幫助。請記住,輸入拆分的計算由客戶端的Job或JobSubmitter完成,現在拆分被放置在HDFS中(因此RM不需要元數據),這在資源管理器接收到提交應用程序的請求之前完成。 –
這意味着當向HDFS提交作業(從HDFS讀取)時,您將與NameNode進行交互以找出您想要保留的文件在哪個DataNode上? – LP45