hdfs深入:10hdfs的javaAPI操作

Posted mediocreworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdfs深入:10hdfs的javaAPI操作相关的知识,希望对你有一定的参考价值。

 看到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());
}
}
}

以上是关于hdfs深入:10hdfs的javaAPI操作的主要内容,如果未能解决你的问题,请参考以下文章

hdfs-javaAPI操作

使用javaAPI操作hdfs

HDFS设计思想元数据简单JAVAAPI操作HDFS

HDFS设计思想元数据简单JAVAAPI操作HDFS

HDFS之深入简出

hadoop的hdfs中的javaAPI操作