diff --git a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/HudiService.java b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/HudiService.java index 9e2bb6e..ead6b73 100644 --- a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/HudiService.java +++ b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/HudiService.java @@ -78,4 +78,7 @@ public interface HudiService { @Get("/hdfs/download") InputStream download(@Query("root") String root); + + @Get("/hdfs/size") + String size(@Query("root") String root); } diff --git a/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/controller/HdfsController.java b/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/controller/HdfsController.java index cf327a9..a171107 100644 --- a/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/controller/HdfsController.java +++ b/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/controller/HdfsController.java @@ -66,4 +66,9 @@ public class HdfsController { public void download(@RequestParam("root")String root, HttpServletResponse response) throws IOException { hdfsService.download(root, response.getOutputStream()); } + + @GetMapping("size") + public Long size(@RequestParam("root")String root) throws IOException { + return hdfsService.size(root); + } } diff --git a/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/service/HdfsService.java b/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/service/HdfsService.java index eb86370..3c12b89 100644 --- a/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/service/HdfsService.java +++ b/service-hudi-query/src/main/java/com/lanyuanxiaoyao/service/hudi/service/HdfsService.java @@ -143,4 +143,11 @@ public class HdfsService { } } } + + @Cacheable(value = "size-hpath", sync = true) + public Long size(String root) throws IOException { + try (FileSystem fileSystem = FileSystem.get(new Configuration())) { + return fileSystem.getContentSummary(new Path(root)).getLength(); + } + } }