视图文件系统(View File System ,ViewFs)提供了管理多个Hadoop文件系统命名空间的方式,该系统在HDFS联盟的集群中有多个NameNode(因此有多个命名空间)是特别有用。ViewFs与某些Linux或Unix系统的客户端挂载表类似,可以被用于创建个性化的命名空间视图和整个集群共同的视图。本篇文章基于拥有几个集群,集群互相联合形成多个命名空间的Hadoop系统,也学习了在HDFS联盟中使用ViewFs提供整个集群的全局命名空间,这样应用程序可以以与在联盟中相似的方式操作。
在HDFS联盟出现之前(也就是hadoop-1.x中),整个集群中只有单一的NameNode,该NameNode为集群提供了单一的文件系统命名空间。假设存在多个集群,每个集群的文件系统命名空间是完全独立和不相交的,而且集群间不共享物理存储,比如集群间不共享DataNodes。每个集群中的core-site.xml设置了该集群中NameNode的默认文件系统:
<property>
<name>fs.default.name</name>
<value>hdfs://namenodeOfClusterX:port</value>
</property>