[
https://issues.apache.org/jira/browse/HADOOP-9617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aaron T. Myers updated HADOOP-9617:
-----------------------------------
Attachment: HADOOP-9617.patch
Thanks a lot for the comments, Daryn and Todd. I took Daryn's suggestion of
changing DistributedFileSystem#canonicalizeUri to call
FileSystem#canonicalizeUri in the event of a logical URI, which I think should
cover all the bases. I also created a new test case to suit, which is
restricted to just DistributedFileSystem.
Please have a look.
> HA HDFS client is too strict with validating URI authorities
> ------------------------------------------------------------
>
> Key: HADOOP-9617
> URL: https://issues.apache.org/jira/browse/HADOOP-9617
> Project: Hadoop Common
> Issue Type: Bug
> Components: fs, ha
> Affects Versions: 2.0.5-alpha
> Reporter: Aaron T. Myers
> Assignee: Aaron T. Myers
> Attachments: HADOOP-9617.patch, HADOOP-9617.patch
>
>
> HADOOP-9150 changed the way FS URIs are handled to prevent attempted DNS
> resolution of logical URIs. This has the side effect of changing the way
> Paths are verified when passed to a FileSystem instance created with an
> authority that differs from the authority of the Path. Previous to
> HADOOP-9150, a default port would be added to either authority in the event
> that either URI did not have a port. Post HADOOP-9150, no default port is
> added. This means that a FileSystem instance created using the URI
> "hdfs://ha-logical-uri:8020" will no longer process paths containing just the
> authority "hdfs://ha-logical-uri", and will throw an error like the following:
> {noformat}
> java.lang.IllegalArgumentException: Wrong FS:
> hdfs://ns1/user/hive/warehouse/sample_07/sample_07.csv, expected:
> hdfs://ns1:8020
> at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:625)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:173)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:249)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:82)
> {noformat}
> Though this is not necessarily incorrect behavior, it is a
> backward-incompatible change that at least breaks certain clients' ability to
> connect to an HA HDFS cluster.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira