Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
2.0.5-alpha
-
None
Description
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:
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)
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.