当使用 viewfs:/// 作为 fs.defaultFS 时无法打印 hdfs 拓扑

当使用 viewfs:/// 作为 fs.defaultFS 时无法打印 hdfs 拓扑

我在 HDFS 中使用 Rack Awareness 技术,我可以使用以下命令来获取拓扑:

hdfs dfsadmin-printTopology

今天,设置 HDFS 联合并使用 viewfs 而不是 hdfs 作为 defaultFS 之后,如下所示:

<!--                                                                                                                                              
  <property>                                                                                                                                      
    <name>fs.defaultFS</name>                                                                                                                     
    <value>hdfs://namenode1:9000</value>                                                                                                          
  </property>                                                                                                                                     
-->
  <property>
    <name>fs.defaultFS</name>
    <value>viewfs:///</value>
  </property>
  <property>
    <name>fs.viewfs.mounttable.default.link./ns1</name>
    <value>hdfs://namenode1:9000</value>
  </property>
  <property>
    <name>fs.viewfs.mounttable.default.link./ns2</name>
    <value>hdfs://namenode2:9000</value>
  </property>

我收到错误信息:

hduser@namenode1:/usr/local/hadoop/etc/hadoop$ hdfs dfsadmin -printTopology
printTopology: FileSystem viewfs:/ is not an HDFS file system
Usage: java DFSAdmin [-printTopology]

我的问题是:

  1. 在联合中使用 viewfs 比使用 hdfs 更好吗?
  2. viewfs 是否支持 Rack Awareness 和 printTopology 命令?

我是 HDFS 集群的新手,希望可以从这里获得建议。

答案1

您应该使用新的 hadoop 客户端,并像这样设置 core-site.xml:property:fs.defaultFS value:hdfs://your active namenode host:port not viewfs protocol 然后您可以使用 hdfs 客户端注释

相关内容