本文分别为您介绍非高可用集群和高可用集群的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数据块,节点上的数据盘。  |