HDFS的進程和各自的作用
NameNode
NameNode 管理者文件系統的 Namespace。它維護着文件的元數據,包括文件名、副本數、文件的 BlockId,以及 block 所在的服務器,會接受來自 Client 端的讀寫請求,和DataNode 的 Block 信息上報。
Secondary NameNode
Secondary NameNode是一個用來監控HDFS狀態的輔助后台程序。就像NameNode一樣,每個集群都有一個Secondary NameNode,並且部署在一個單獨的服務器上。Secondary NameNode不同於NameNode,它不接受或者記錄任何實時的數據變化,但是,它會與NameNode進行通信,以便定期地保存HDFS元數據的 快照。由於NameNode是單點的,通過Secondary NameNode的快照功能,可以將NameNode的宕機時間和數據損失降低到最小。同時,如果NameNode中的Fsimage到達了容量時候毀於Secondary NameNode進行通信,進行checkoint操作。
DataNode
HDFS 的工作節點,他們根據客戶端或者是 NameNode 的調度存儲和檢索數據,並且定期向 NameNode 發送他們所存儲的塊(block)的列表。
JournalNode
負責兩個 NameNode 高可用時的數據同步保證數據一致,存放 NameNode 的 editlog 文件
(元數據),部署在任意節點,奇數個。
DFSZKFailoverController(ZKFC)
負責監控 NameNode 的健康狀態,並及時把信息狀態寫入 Zookeeper,如有異常會觸發主
從切換,部署在有 NameNode 的節點。