1. 程式人生 > >Hadoop叢集中出現的節點有哪些作用?

Hadoop叢集中出現的節點有哪些作用?

例如:以下節點 

DFSZKFailoverController---控制故障轉移

定期對本地的NameNode發起health-check的命令,如果NameNode正確返回,那麼這個NameNode被認為是OK的。否則被認為是失效節點。ZK提供了一個簡單的機制來保證只有一個NameNode是活動的。如果當前的活動NameNode失效了,那麼另一個NameNode將獲取ZK中的獨佔鎖,表明自己是活動的節點。
作為一個ZK叢集的客戶端,用來監控NameNode的狀態資訊。每個執行NameNode的節點必須要執行一個zkfc.

JournalNode:

 兩個NameNode為了資料同步,會通過一組稱作JournalNodes的獨立程序進行相互通訊。當active狀態的NameNode的名稱空間有任何修改時,會告知大部分的JournalNodes程序。standby狀態的NameNode有能力讀取JournalNodes中的變更資訊,並且一直監控edit log的變化,把變化應用與自己的名稱空間。standby可以確保在叢集出錯時,名稱空間狀態已經完全同步了。為了確保快速切換,standby狀態的NameNode有必要知道叢集中所有資料塊的位置。為了做到這點,所有的DataNodes必須配置兩個NameNode的地址,傳送資料塊位置資訊和心跳給他們兩個。

對於HA叢集而言,確保同一時刻只有一個NameNode處於active狀態是至關重要的。否則,兩個NameNode的資料狀態就會產生分歧,可能丟失資料,或者產生錯誤的結果。為了保證這點,JournalNodes必須確保同一時刻只有一個NameNode可以向自己寫資料。

 ResourceManager:

管理叢集資源,負責全域性資源的監控,分配和管理。接收來自NodeManager的心跳資訊,進行整體資源的彙總,監控ApplicationMaster的開啟和建立。

NodeManager:

yarn中的每一臺節點伺服器都執行一個NodeManager,NodeManager相當於管理當前機器的一個代理,負責本臺機器的程式執行,並且對本臺機器資源進行管理和監控,NodeManager定時向ResourceManager彙報本節點的資源(cpu,記憶體,磁碟)等使用情況,啟動並監控Container(容器)。

NameNode:

 管理檔案系統的名稱空間,它維護著檔案系統樹及整棵樹上所有檔案和目錄。這些資訊以兩個檔案形式永久儲存在本地磁碟上:名稱空間映象檔案(FS_image)和編輯日誌檔案(Edit_log)。namenode也記錄著每個檔案中各個塊所在的資料節點資訊(包括副本數,使用者對hdfs的操作),但它並不永久儲存塊的位置資訊,因為這些資訊會在系統啟動時根據資料節點資訊重建。

DataNode:

DataNode負責提供來自檔案系統客戶端的讀寫請求。可根據需要儲存並檢索資料塊(受客戶端或namenode排程),並且定期向namenode傳送(通過心跳機制儲存的塊的列表。