看到10、hdfs的javaAPI操作, 13分19秒
具体代码如下:
/** * 递归遍历hdfs中所有的文件路径 */ @Test public void getAllHdfsFilePath() throws URISyntaxException, IOException { //获取fs的客户端 FileSystem fileSystem = FileSystem.get(new URI("hdfs://node01:8020"), new Configuration()); Path path = new Path("/"); FileStatus[] fileStatuses = fileSystem.listStatus(path); //循环遍历fileStatuses,如果是文件,打印文件的路径,如果是文件夹,继续递归进去 for (FileStatus fileStatus : fileStatuses){ if (fileStatus.isDirectory()){//文件夹 getDirectoryFiles(fileSystem,fileStatus); }else{ //文件 System.out.println(fileStatus.getPath().toString()); } } } /** * 递归获取文件路径 */ public void getDirectoryFiles(FileSystem fileSystem,FileStatus fileStatus) throws IOException { //通过fileStatus获取文件夹路径 Path path = fileStatus.getPath(); //该fileStatus必定为一个文件夹 FileStatus[] fileStatuses = fileSystem.listStatus(path); for (FileStatus status:fileStatuses){ if (fileStatus.isDirectory()){ getDirectoryFiles(fileSystem,status); }else{ System.out.println(fileStatus.getPath().toString()); } } }
原文地址:https://www.cnblogs.com/mediocreWorld/p/10952959.html
时间: 2024-12-16 13:41:28