Hadoop-1.x版本中的HDFS架构在整个集群中只允许一个命名空间,由一个NameNode管理整个命名空间,Hadoop-2.x版本中的HDFS联盟通过支持多个NameNode和命名空间解决了之前架构的局限性。HDFS联盟的配置管理是向后兼容的,允许现存的单节点NameNode配置在不需要任何修改的情况下工作正常。新的配置管理允许集群中的所有节点使用相同的配置而不需要根据节点的不同类型部署不同的配置文件。
伴随HDFS联盟还产生了称为NameServiceID的新的抽象概念,NameNode及其对应的secondary、backup、checkpointer节点都属于同一NameServiceID。为了支持上述一个配置文件的机制,NameNode及secondary、backup、checkpointer节点的配置参数以NameServiceID为后缀并增加到相同的配置文件中。
在hdfs-site.xml中,dfs.nameservices定义了用逗号分隔的不同的NameServiceID,DateNodes将使用这些信息确定集群中的NameNodes。NameNode需要根据dfs.nameservices配置下表中的参数:
dfs.namenode.rpc-address |
处理所有客户端请求的RPC地址,格式为nn-host1:rpc-po |