联邦(Federation)
早期的HDFS只有一个namenode,维护一个namespace,如果namenode节点挂掉,整个系统都将不可用,数据节点的数据也将丢失。为了分散风险,加入了多个namenode,每个namenode按照一定规则(Client side mount table 客户端挂载表)分管集群的一部分任务。
一个datanode维护一个data volume,包括data space和一个data pool。data space 存储文件路径、文件名等,data pool则是逻辑上对data node的物理资源的一次再分配。可能一个data pool包含多个data node。每个data pool都有自己唯一的id,通过这个id向对应的name node提供数据服务。
data pool 不再进行划分,因此,每一个data node需要向所有的namenode注册,且需要向所有的namenode发送心跳信息。