本文分別為您介紹非高可用叢集和高可用叢集的HDFS組件的部署拓撲資訊。
非高可用叢集
節點 | 組件 | 描述 |
master-1-1(部分版本為emr-header-1) | NameNode | NameNode對外提供讀寫服務。 |
SecondaryNameNode | SecondaryNameNode合并NameNode的edits日誌到FsImage,加速NameNode重啟。 | |
core-1-1或emr-worker-x | DataNode | 管理和存放HDFS資料區塊,節點上的資料盤。 |
高可用叢集
節點 | 組件 | 描述 |
master-1-1(部分版本為emr-header-1) | ZKFailoverController(ZKFC) | 獨立的進程運行,根據NameNode的狀態進行主備選舉和切換。 |
NameNode | 一組NameNode服務中,由一個Active狀態的NameNode(主NameNode)提供讀寫服務,其他NameNode為Standby狀態(備NameNode)。只有主NameNode才能對外提供讀寫服務。 | |
JournalNode | 存放NameNode的editslog,一般3台Journal為一組。當兩台JournalNode同時健康、可寫入的情況下,NameNode才可提供服務。 | |
ZooKeeper | EMR叢集內的ZooKeeper。ZKFC基於ZooKeeper提供的能力實現選舉,同時其他組件的HA也會依賴ZooKeeper。 | |
master-1-2(部分版本為emr-header-2) | ZKFailoverController(ZKFC) | 獨立的進程運行,根據NameNode的狀態進行主備選舉和切換。 |
NameNode | 一組NameNode服務中,由一個Active狀態的NameNode(主NameNode)提供讀寫服務,其他NameNode為Standby狀態(備NameNode)。只有主NameNode才能對外提供讀寫服務。 | |
JournalNode | 存放NameNode的editslog,一般3台Journal為一組。當兩台JournalNode同時健康、可寫入的情況下,NameNode才可提供服務。 | |
ZooKeeper | EMR叢集內的ZooKeeper。ZKFC基於ZooKeeper提供的能力實現選舉,同時其他組件的HA也會依賴ZooKeeper。 | |
master-1-3(部分版本為emr-header-3或emr-worker-1) | *ZKFailoverController(ZKFC) | 獨立的進程運行,根據NameNode的狀態進行主備選舉和切換。 說明 EMR 5.8.0版本之後的Hadoop 3.x預設為3組NameNode部署,多一組ZKFC和NameNode部署在master-1-3上。 |
*NameNode | 一組NameNode服務中,由一個Active狀態的NameNode(主NameNode)提供讀寫服務,其他NameNode為Standby狀態(備NameNode)。只有主NameNode才能對外提供讀寫服務。 說明 EMR 5.8.0版本之後的Hadoop 3.x預設為3組NameNode部署,多一組ZKFC和NameNode部署在master-1-3上。 | |
JournalNode | 存放NameNode的editslog,一般3台Journal為一組。當兩台JournalNode同時健康、可寫入的情況下,NameNode才可提供服務。 | |
ZooKeeper | EMR叢集內的ZooKeeper。ZKFC基於ZooKeeper提供的能力實現選舉,同時其他組件的HA也會依賴ZooKeeper。 | |
core-1-1或emr-worker-x | DataNode | 管理和存放HDFS資料區塊,節點上的資料盤。 |