名字节点是HDFS主从结构中主节点上运行的主要进程,它知道主从结构中的从节点,数据节点执行底层的I/O任务。名字节点是HDFS的书记员,维护着整个文件系统的文件目录树,文件/目录的元信息和文件的数据块索引,即每个文件对应的数据块列表。这些信息以两种形式存储在本地系统中:一种是命名空间镜像,另一种是命名空间镜像的编辑日志。
命名镜像空间保存着某一特定时刻HDFS的目录树、元信息和数据块索引等信息,后续对这些信息的改动,则保存在编辑日志中,它们一起提供了一个完整的名字节点第一关系。
同时,通过名字节点,客户端还可以了解到数据块所在的数据节点信息。名字节点中与数据节点相关的信息不保留在名字节点的本地文件系统中,节点每次启动时,都会动态的重建这些信息,这些信息构成了名字节点第二关系。运行时,客户端通过名字节点获取上述信息,然后和数据节点进行交互,读写日志文件。
第二名字节点是用于定期合并命名空间镜像和镜像编辑日志的辅助守护进程。和名字节点一样,每个集群都有一个第二名字节点,在大规模部署的条件下,一般第二名字节点也独占用一台服务器。
名字节点是HDFS集群中的单一故障点,通过第二名字节点的检查点,可以减少停机的时间并降低名字节点元数据丢失的风险。但是,第二名字节点不支持名字节点的故障自动恢复,名字节点失效处理需要人工干预。