diff --git a/bundles/aliyun/src/main/java/org/apache/gravitino/oss/fs/OSSFileSystemProvider.java b/bundles/aliyun/src/main/java/org/apache/gravitino/oss/fs/OSSFileSystemProvider.java index e72f3842ea0..b4509ef5438 100644 --- a/bundles/aliyun/src/main/java/org/apache/gravitino/oss/fs/OSSFileSystemProvider.java +++ b/bundles/aliyun/src/main/java/org/apache/gravitino/oss/fs/OSSFileSystemProvider.java @@ -65,7 +65,7 @@ public FileSystem getFileSystem(Path path, Map config) throws IO Configuration configuration = FileSystemUtils.createConfiguration(hadoopConfMap); - return AliyunOSSFileSystem.newInstance(path.toUri(), configuration); + return AliyunOSSFileSystem.get(path.toUri(), configuration); } @Override diff --git a/bundles/aws/src/main/java/org/apache/gravitino/s3/fs/S3FileSystemProvider.java b/bundles/aws/src/main/java/org/apache/gravitino/s3/fs/S3FileSystemProvider.java index ccec76d9312..4e9cd475813 100644 --- a/bundles/aws/src/main/java/org/apache/gravitino/s3/fs/S3FileSystemProvider.java +++ b/bundles/aws/src/main/java/org/apache/gravitino/s3/fs/S3FileSystemProvider.java @@ -73,7 +73,7 @@ public FileSystem getFileSystem(Path path, Map config) throws IO checkAndSetCredentialProvider(hadoopConfMap); Configuration configuration = FileSystemUtils.createConfiguration(hadoopConfMap); - return S3AFileSystem.newInstance(path.toUri(), configuration); + return S3AFileSystem.get(path.toUri(), configuration); } @Override diff --git a/bundles/azure/src/main/java/org/apache/gravitino/abs/fs/AzureFileSystemProvider.java b/bundles/azure/src/main/java/org/apache/gravitino/abs/fs/AzureFileSystemProvider.java index 4b14d31b04d..f74176246dd 100644 --- a/bundles/azure/src/main/java/org/apache/gravitino/abs/fs/AzureFileSystemProvider.java +++ b/bundles/azure/src/main/java/org/apache/gravitino/abs/fs/AzureFileSystemProvider.java @@ -72,7 +72,7 @@ public FileSystem getFileSystem(@Nonnull Path path, @Nonnull Map } Configuration configuration = FileSystemUtils.createConfiguration(hadoopConfMap); - return FileSystem.newInstance(path.toUri(), configuration); + return FileSystem.get(path.toUri(), configuration); } @Override diff --git a/bundles/gcp/src/main/java/org/apache/gravitino/gcs/fs/GCSFileSystemProvider.java b/bundles/gcp/src/main/java/org/apache/gravitino/gcs/fs/GCSFileSystemProvider.java index 5c37614f4ad..08666817dcb 100644 --- a/bundles/gcp/src/main/java/org/apache/gravitino/gcs/fs/GCSFileSystemProvider.java +++ b/bundles/gcp/src/main/java/org/apache/gravitino/gcs/fs/GCSFileSystemProvider.java @@ -48,7 +48,7 @@ public FileSystem getFileSystem(Path path, Map config) throws IO Map hadoopConfMap = FileSystemUtils.toHadoopConfigMap(config, GRAVITINO_KEY_TO_GCS_HADOOP_KEY); Configuration configuration = FileSystemUtils.createConfiguration(hadoopConfMap); - return FileSystem.newInstance(path.toUri(), configuration); + return FileSystem.get(path.toUri(), configuration); } @Override diff --git a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java index 9c1979345d9..31cb9633c4c 100644 --- a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java +++ b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java @@ -65,6 +65,23 @@ public interface FileSystemProvider { FileSystem getFileSystem(@Nonnull Path path, @Nonnull Map config) throws IOException; + /** + * Get the FileSystem instance according to the configuration map and file path. + * + * @param config The configuration for the FileSystem instance. + * @param path The path to the file system. + * @param disableCache Whether to cache the FileSystem instance. + * @return The FileSystem instance. + * @throws IOException If the FileSystem instance cannot be created. + */ + default FileSystem getFileSystem( + @Nonnull Path path, @Nonnull Map config, boolean disableCache) + throws IOException { + // disable cache + config.put(String.format("fs.%s.impl.disable.cache", scheme()), String.valueOf(disableCache)); + return getFileSystem(path, config); + } + /** * Scheme of this FileSystem provider. The value is 'file' for LocalFileSystem, 'hdfs' for HDFS, * etc. diff --git a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/HDFSFileSystemProvider.java b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/HDFSFileSystemProvider.java index 00f14fccf4b..3108874b11a 100644 --- a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/HDFSFileSystemProvider.java +++ b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/HDFSFileSystemProvider.java @@ -33,7 +33,7 @@ public class HDFSFileSystemProvider implements FileSystemProvider { public FileSystem getFileSystem(@Nonnull Path path, @Nonnull Map config) throws IOException { Configuration configuration = FileSystemUtils.createConfiguration(GRAVITINO_BYPASS, config); - return FileSystem.newInstance(path.toUri(), configuration); + return FileSystem.get(path.toUri(), configuration); } @Override diff --git a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/LocalFileSystemProvider.java b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/LocalFileSystemProvider.java index 2d036255f3e..3b892dca856 100644 --- a/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/LocalFileSystemProvider.java +++ b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/LocalFileSystemProvider.java @@ -33,7 +33,7 @@ public class LocalFileSystemProvider implements FileSystemProvider { public FileSystem getFileSystem(Path path, Map config) throws IOException { Configuration configuration = FileSystemUtils.createConfiguration(BUILTIN_HDFS_FS_PROVIDER, config); - return FileSystem.newInstance(path.toUri(), configuration); + return FileSystem.get(path.toUri(), configuration); } @Override diff --git a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java index 67bfe961a22..84342c82fa8 100644 --- a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java +++ b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java @@ -319,7 +319,7 @@ private FilesetContextPair getFilesetContext(Path virtualPath, FilesetDataOperat totalProperty.putAll(getCredentialProperties(provider, catalog, identifier)); - return provider.getFileSystem(filePath, totalProperty); + return provider.getFileSystem(filePath, totalProperty, true); } catch (IOException ioe) { throw new GravitinoRuntimeException( ioe,