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 的节点。