diff --git a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
index 01ac52e7132..1f933946f54 100644
--- a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
+++ b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
@@ -908,6 +908,116 @@
+
+ fs.viewfs.overload.scheme.target.hdfs.impl
+ org.apache.hadoop.hdfs.DistributedFileSystem
+ The DistributedFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are hdfs.
+
+
+
+
+ fs.viewfs.overload.scheme.target.s3a.impl
+ org.apache.hadoop.fs.s3a.S3AFileSystem
+ The S3AFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are s3a.
+
+
+
+ fs.viewfs.overload.scheme.target.o3fs.impl
+ org.apache.hadoop.fs.ozone.OzoneFileSystem
+ The OzoneFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are o3fs.
+
+
+
+ fs.viewfs.overload.scheme.target.ftp.impl
+ org.apache.hadoop.fs.ftp.FTPFileSystem
+ The FTPFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are ftp.
+
+
+
+
+ fs.viewfs.overload.scheme.target.webhdfs.impl
+ org.apache.hadoop.hdfs.web.WebHdfsFileSystem
+ The WebHdfsFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are webhdfs.
+
+
+
+
+ fs.viewfs.overload.scheme.target.swebhdfs.impl
+ org.apache.hadoop.hdfs.web.SWebHdfsFileSystem
+ The SWebHdfsFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are swebhdfs.
+
+
+
+
+ fs.viewfs.overload.scheme.target.file.impl
+ org.apache.hadoop.fs.LocalFileSystem
+ The LocalFileSystem for view file system overload scheme when
+ child file system and ViewFSOverloadScheme's schemes are file.
+
+
+
+
+ fs.viewfs.overload.scheme.target.abfs.impl
+ org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem
+ The AzureBlobFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are abfs.
+
+
+
+
+ fs.viewfs.overload.scheme.target.abfss.impl
+ org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem
+ The SecureAzureBlobFileSystem for view file system overload
+ scheme when child file system and ViewFSOverloadScheme's schemes are abfss.
+
+
+
+
+ fs.viewfs.overload.scheme.target.wasb.impl
+ org.apache.hadoop.fs.azure.NativeAzureFileSystem
+ The NativeAzureFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are wasb.
+
+
+
+
+ fs.viewfs.overload.scheme.target.swift.impl
+ org.apache.hadoop.fs.swift.snative.SwiftNativeFileSystem
+ The SwiftNativeFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are swift.
+
+
+
+
+ fs.viewfs.overload.scheme.target.oss.impl
+ org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem
+ The AliyunOSSFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are oss.
+
+
+
+
+ fs.viewfs.overload.scheme.target.http.impl
+ org.apache.hadoop.fs.http.HttpFileSystem
+ The HttpFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are http.
+
+
+
+
+ fs.viewfs.overload.scheme.target.https.impl
+ org.apache.hadoop.fs.http.HttpsFileSystem
+ The HttpsFileSystem for view file system overload scheme
+ when child file system and ViewFSOverloadScheme's schemes are https.
+
+
+
fs.AbstractFileSystem.ftp.impl
org.apache.hadoop.fs.ftp.FtpFs
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java
index c2181941dcf..4c9b8bb51c7 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestCommonConfigurationFields.java
@@ -117,6 +117,24 @@ public void initializeMemberVariables() {
xmlPrefixToSkipCompare.add("fs.adl.");
xmlPropsToSkipCompare.add("fs.AbstractFileSystem.adl.impl");
+ // ViewfsOverloadScheme target fs impl property keys are dynamically
+ // constructed and they are advanced props.
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.abfs.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.abfss.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.file.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.ftp.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.hdfs.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.http.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.https.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.o3fs.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.oss.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.s3a.impl");
+ xmlPropsToSkipCompare.
+ add("fs.viewfs.overload.scheme.target.swebhdfs.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.webhdfs.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.wasb.impl");
+ xmlPropsToSkipCompare.add("fs.viewfs.overload.scheme.target.swift.impl");
+
// Azure properties are in a different class
// - org.apache.hadoop.fs.azure.AzureNativeFileSystemStore
// - org.apache.hadoop.fs.azure.SASKeyGeneratorImpl
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemOverloadSchemeWithHdfsScheme.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemOverloadSchemeWithHdfsScheme.java
index 6e101a67960..f0f3aae1ba6 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemOverloadSchemeWithHdfsScheme.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemOverloadSchemeWithHdfsScheme.java
@@ -382,13 +382,17 @@ public void testCreateOnRootShouldFailEvenFallBackMountLinkConfigured()
* Note: Above links created because to make fs initialization success.
* Otherwise will not proceed if no mount links.
*
- * Don't set fs.viewfs.overload.scheme.target.hdfs.impl property.
+ * Unset fs.viewfs.overload.scheme.target.hdfs.impl property.
* So, OverloadScheme target fs initialization will fail.
*/
@Test(expected = UnsupportedFileSystemException.class, timeout = 30000)
public void testInvalidOverloadSchemeTargetFS() throws Exception {
final Path hdfsTargetPath = new Path(defaultFSURI + HDFS_USER_FOLDER);
+ String mountTableIfSet = conf.get(Constants.CONFIG_VIEWFS_MOUNTTABLE_PATH);
conf = new Configuration();
+ if (mountTableIfSet != null) {
+ conf.set(Constants.CONFIG_VIEWFS_MOUNTTABLE_PATH, mountTableIfSet);
+ }
addMountLinks(defaultFSURI.getAuthority(),
new String[] {HDFS_USER_FOLDER, LOCAL_FOLDER,
Constants.CONFIG_VIEWFS_LINK_FALLBACK },
@@ -400,6 +404,9 @@ public void testInvalidOverloadSchemeTargetFS() throws Exception {
defaultFSURI.toString());
conf.set(String.format(FS_IMPL_PATTERN_KEY, HDFS_SCHEME),
ViewFileSystemOverloadScheme.class.getName());
+ conf.unset(String.format(
+ FsConstants.FS_VIEWFS_OVERLOAD_SCHEME_TARGET_FS_IMPL_PATTERN,
+ HDFS_SCHEME));
try (FileSystem fs = FileSystem.get(conf)) {
fs.createNewFile(new Path("/onRootWhenFallBack"));