This is an automated email from the ASF dual-hosted git repository.

danny0405 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new f35ae58089f [HUDI-7681] Remove Hadoop Path usage in a few classes in 
hudi-common module (#11108)
f35ae58089f is described below

commit f35ae58089fd9725ae09c1f183d4c97bcc2fce12
Author: Y Ethan Guo <ethan.guoyi...@gmail.com>
AuthorDate: Fri Apr 26 18:52:58 2024 -0700

    [HUDI-7681] Remove Hadoop Path usage in a few classes in hudi-common module 
(#11108)
---
 .../versioning/clean/CleanMetadataV1MigrationHandler.java    |  9 ++++-----
 .../versioning/clean/CleanMetadataV2MigrationHandler.java    |  5 ++---
 .../versioning/clean/CleanPlanV1MigrationHandler.java        |  5 ++---
 .../versioning/clean/CleanPlanV2MigrationHandler.java        |  5 ++---
 .../versioning/compaction/CompactionV1MigrationHandler.java  |  9 ++++-----
 .../versioning/compaction/CompactionV2MigrationHandler.java  |  8 ++++----
 .../src/main/java/org/apache/hudi/metrics/Metrics.java       | 12 ++++++------
 7 files changed, 24 insertions(+), 29 deletions(-)

diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV1MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV1MigrationHandler.java
index 41e3dc79399..38d2bf7828f 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV1MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV1MigrationHandler.java
@@ -25,8 +25,7 @@ import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.ValidationUtils;
 import org.apache.hudi.common.util.collection.Pair;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -57,7 +56,7 @@ public class CleanMetadataV1MigrationHandler extends 
AbstractMigratorBase<Hoodie
   public HoodieCleanMetadata downgradeFrom(HoodieCleanMetadata input) {
     ValidationUtils.checkArgument(input.getVersion() == 2,
         "Input version is " + input.getVersion() + ". Must be 2");
-    final Path basePath = new Path(metaClient.getBasePath());
+    final StoragePath basePath = metaClient.getBasePathV2();
 
     final Map<String, HoodieCleanPartitionMetadata> partitionMetadataMap = 
input
         .getPartitionMetadata()
@@ -94,11 +93,11 @@ public class CleanMetadataV1MigrationHandler extends 
AbstractMigratorBase<Hoodie
         .setVersion(getManagedVersion()).build();
   }
 
-  private static String convertToV1Path(Path basePath, String partitionPath, 
String fileName) {
+  private static String convertToV1Path(StoragePath basePath, String 
partitionPath, String fileName) {
     if ((fileName == null) || (fileName.isEmpty())) {
       return fileName;
     }
 
-    return new Path(FSUtils.constructAbsolutePath(basePath, partitionPath), 
fileName).toString();
+    return new StoragePath(FSUtils.constructAbsolutePath(basePath, 
partitionPath), fileName).toString();
   }
 }
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV2MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV2MigrationHandler.java
index d811047cf6f..f0bc04af341 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV2MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanMetadataV2MigrationHandler.java
@@ -24,8 +24,7 @@ import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.ValidationUtils;
 import org.apache.hudi.common.util.collection.Pair;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.List;
 import java.util.Map;
@@ -91,7 +90,7 @@ public class CleanMetadataV2MigrationHandler extends 
AbstractMigratorBase<Hoodie
   }
 
   private List<String> convertToV2Path(List<String> paths) {
-    return paths.stream().map(path -> new Path(path).getName())
+    return paths.stream().map(path -> new StoragePath(path).getName())
         .collect(Collectors.toList());
   }
 }
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV1MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV1MigrationHandler.java
index a4c4cefa2a2..63deff6e223 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV1MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV1MigrationHandler.java
@@ -22,8 +22,7 @@ import org.apache.hudi.avro.model.HoodieCleanerPlan;
 import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.collection.Pair;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -61,7 +60,7 @@ public class CleanPlanV1MigrationHandler extends 
AbstractMigratorBase<HoodieClea
           "This version do not support METADATA_ONLY bootstrapped tables. 
Failed to downgrade.");
     }
     Map<String, List<String>> filesPerPartition = 
plan.getFilePathsToBeDeletedPerPartition().entrySet().stream()
-        .map(e -> Pair.of(e.getKey(), e.getValue().stream().map(v -> new 
Path(v.getFilePath()).getName())
+        .map(e -> Pair.of(e.getKey(), e.getValue().stream().map(v -> new 
StoragePath(v.getFilePath()).getName())
             
.collect(Collectors.toList()))).collect(Collectors.toMap(Pair::getKey, 
Pair::getValue));
     return new HoodieCleanerPlan(plan.getEarliestInstantToRetain(), 
plan.getLastCompletedCommitTimestamp(),
         plan.getPolicy(), filesPerPartition, VERSION, new HashMap<>(), new 
ArrayList<>(), Collections.EMPTY_MAP);
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV2MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV2MigrationHandler.java
index 99b5185ba73..2f921789443 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV2MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/clean/CleanPlanV2MigrationHandler.java
@@ -24,8 +24,7 @@ import org.apache.hudi.common.fs.FSUtils;
 import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.collection.Pair;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -55,7 +54,7 @@ public class CleanPlanV2MigrationHandler extends 
AbstractMigratorBase<HoodieClea
     Map<String, List<HoodieCleanFileInfo>> filePathsPerPartition =
         plan.getFilesToBeDeletedPerPartition().entrySet().stream().map(e -> 
Pair.of(e.getKey(), e.getValue().stream()
             .map(v -> new HoodieCleanFileInfo(
-                new 
Path(FSUtils.constructAbsolutePathInHadoopPath(metaClient.getBasePath(), 
e.getKey()), v).toString(), false))
+                new 
StoragePath(FSUtils.constructAbsolutePath(metaClient.getBasePathV2(), 
e.getKey()), v).toString(), false))
             
.collect(Collectors.toList()))).collect(Collectors.toMap(Pair::getKey, 
Pair::getValue));
     return new HoodieCleanerPlan(plan.getEarliestInstantToRetain(), 
plan.getLastCompletedCommitTimestamp(),
         plan.getPolicy(), new HashMap<>(), VERSION, filePathsPerPartition, new 
ArrayList<>(), Collections.emptyMap());
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV1MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV1MigrationHandler.java
index 31905b1ad4b..8e9307ac376 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV1MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV1MigrationHandler.java
@@ -24,8 +24,7 @@ import org.apache.hudi.common.fs.FSUtils;
 import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.ValidationUtils;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -56,7 +55,7 @@ public class CompactionV1MigrationHandler extends 
AbstractMigratorBase<HoodieCom
   public HoodieCompactionPlan downgradeFrom(HoodieCompactionPlan input) {
     ValidationUtils.checkArgument(input.getVersion() == 2, "Input version is " 
+ input.getVersion() + ". Must be 2");
     HoodieCompactionPlan compactionPlan = new HoodieCompactionPlan();
-    final Path basePath = new Path(metaClient.getBasePath());
+    final StoragePath basePath = metaClient.getBasePathV2();
     List<HoodieCompactionOperation> v1CompactionOperationList = new 
ArrayList<>();
     if (null != input.getOperations()) {
       v1CompactionOperationList = input.getOperations().stream().map(inp ->
@@ -73,11 +72,11 @@ public class CompactionV1MigrationHandler extends 
AbstractMigratorBase<HoodieCom
     return compactionPlan;
   }
 
-  private static String convertToV1Path(Path basePath, String partitionPath, 
String fileName) {
+  private static String convertToV1Path(StoragePath basePath, String 
partitionPath, String fileName) {
     if ((fileName == null) || (fileName.isEmpty())) {
       return fileName;
     }
 
-    return new Path(FSUtils.constructAbsolutePath(basePath, partitionPath), 
fileName).toString();
+    return new StoragePath(FSUtils.constructAbsolutePath(basePath, 
partitionPath), fileName).toString();
   }
 }
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV2MigrationHandler.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV2MigrationHandler.java
index 980766150ae..fde5bc14000 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV2MigrationHandler.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/table/timeline/versioning/compaction/CompactionV2MigrationHandler.java
@@ -23,8 +23,7 @@ import org.apache.hudi.avro.model.HoodieCompactionPlan;
 import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.table.timeline.versioning.AbstractMigratorBase;
 import org.apache.hudi.common.util.ValidationUtils;
-
-import org.apache.hadoop.fs.Path;
+import org.apache.hudi.storage.StoragePath;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -55,8 +54,9 @@ public class CompactionV2MigrationHandler extends 
AbstractMigratorBase<HoodieCom
       v2CompactionOperationList = input.getOperations().stream().map(inp ->
         
HoodieCompactionOperation.newBuilder().setBaseInstantTime(inp.getBaseInstantTime())
             
.setFileId(inp.getFileId()).setPartitionPath(inp.getPartitionPath()).setMetrics(inp.getMetrics())
-            .setDataFilePath(inp.getDataFilePath() == null ? null : new 
Path(inp.getDataFilePath()).getName()).setDeltaFilePaths(
-                inp.getDeltaFilePaths().stream().map(s -> new 
Path(s).getName()).collect(Collectors.toList()))
+            .setDataFilePath(inp.getDataFilePath() == null ? null : new 
StoragePath(inp.getDataFilePath()).getName())
+            .setDeltaFilePaths(
+                inp.getDeltaFilePaths().stream().map(s -> new 
StoragePath(s).getName()).collect(Collectors.toList()))
         .build()).collect(Collectors.toList());
     }
     compactionPlan.setOperations(v2CompactionOperationList);
diff --git a/hudi-common/src/main/java/org/apache/hudi/metrics/Metrics.java 
b/hudi-common/src/main/java/org/apache/hudi/metrics/Metrics.java
index 17e21254593..af32248eea1 100644
--- a/hudi-common/src/main/java/org/apache/hudi/metrics/Metrics.java
+++ b/hudi-common/src/main/java/org/apache/hudi/metrics/Metrics.java
@@ -23,12 +23,12 @@ import org.apache.hudi.common.table.HoodieTableMetaClient;
 import org.apache.hudi.common.util.Option;
 import org.apache.hudi.common.util.StringUtils;
 import org.apache.hudi.config.metrics.HoodieMetricsConfig;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
+import org.apache.hudi.storage.HoodieStorage;
+import org.apache.hudi.storage.HoodieStorageUtils;
+import org.apache.hudi.storage.StoragePath;
 
 import com.codahale.metrics.MetricRegistry;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -98,10 +98,10 @@ public class Metrics {
   private List<MetricsReporter> 
addAdditionalMetricsExporters(HoodieMetricsConfig metricConfig) {
     List<MetricsReporter> reporterList = new ArrayList<>();
     List<String> propPathList = 
StringUtils.split(metricConfig.getMetricReporterFileBasedConfigs(), ",");
-    try (FileSystem fs = HadoopFSUtils.getFs(propPathList.get(0), new 
Configuration())) {
+    try (HoodieStorage storage = 
HoodieStorageUtils.getStorage(propPathList.get(0), new Configuration())) {
       for (String propPath : propPathList) {
         HoodieMetricsConfig secondarySourceConfig = 
HoodieMetricsConfig.newBuilder().fromInputStream(
-            fs.open(new 
Path(propPath))).withPath(metricConfig.getBasePath()).build();
+            storage.open(new 
StoragePath(propPath))).withPath(metricConfig.getBasePath()).build();
         Option<MetricsReporter> reporter = 
MetricsReporterFactory.createReporter(secondarySourceConfig, registry);
         if (reporter.isPresent()) {
           reporterList.add(reporter.get());
@@ -192,7 +192,7 @@ public class Metrics {
   private static String getBasePath(HoodieMetricsConfig metricsConfig) {
     String basePath = metricsConfig.getBasePath();
     if (basePath.endsWith(HoodieTableMetaClient.METADATA_TABLE_FOLDER_PATH)) {
-      String toRemoveSuffix = Path.SEPARATOR + 
HoodieTableMetaClient.METADATA_TABLE_FOLDER_PATH;
+      String toRemoveSuffix = StoragePath.SEPARATOR + 
HoodieTableMetaClient.METADATA_TABLE_FOLDER_PATH;
       basePath = basePath.substring(0, basePath.length() - 
toRemoveSuffix.length());
     }
     return basePath;

Reply via email to