[ https://issues.apache.org/jira/browse/HDFS-6001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13910546#comment-13910546 ]
Chris Nauroth commented on HDFS-6001: ------------------------------------- [~jerryhe], it sounds like you want to discover the host behind a {{FileSystem}}. (Again, we don't have the larger context here, but I'm going to take a guess that this is your goal.) In a federated deployment, this is complicated by the fact that the namesystem is spread across multiple hosts, so the host "behind" the file system is going to be sensitive to a specific path. You could potentially use {{FileSystem#resolvePath}} to get the fully-qualified {{Path}} for a specific file system path: http://hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/fs/FileSystem.html#resolvePath(org.apache.hadoop.fs.Path) This method fully resolves through the client-side mount table and also symlinks. Then, you could call {{Path#toUri}} to change the {{Path}} back into a {{URI}}: http://hadoop.apache.org/docs/r2.2.0/api/org/apache/hadoop/fs/Path.html#toUri() At this point, you'd have a URI containing the real host that backs that part of the namespace. Therefore, in addition to statements from others that this is not a bug, I'd also say that there is no functionality gap that needs to be filled. Does that answer your questions? If so, then I'd like to resolve as won't fix later today. > In HDFS HA setup, FileSystem.getUri returns hdfs://<dfs.nameservices> > --------------------------------------------------------------------- > > Key: HDFS-6001 > URL: https://issues.apache.org/jira/browse/HDFS-6001 > Project: Hadoop HDFS > Issue Type: Bug > Components: ha > Affects Versions: 2.2.0 > Reporter: Jerry He > Priority: Minor > > When hdfs is set up with HA enable, FileSystem.getUri returns > hdfs://<the-value-of-dfs.nameservices> > Here dfs.nameservices is defined when HA is enabled. In documentation: > {quote} > dfs.nameservices - the logical name for this new nameserviceChoose a logical > name for this nameservice, for example "mycluster", and use this logical name > for the value of this config option. The name you choose is arbitrary. It > will be used both for configuration and as the authority component of > absolute HDFS paths in the cluster. > Note: If you are also using HDFS Federation, this configuration setting > should also include the list of other nameservices, HA or otherwise, as a > comma-separated list. > <property> > <name>dfs.nameservices</name> > <value>mycluster</value> > </property> > {quote} > This is probably ok or even intended. But a caller may further process the > URI, for example, call URI.getHost(). This will return the 'mycluster', which > is not a valid host anywhere. -- This message was sent by Atlassian JIRA (v6.1.5#6160)