码迷,mamicode.com
首页 > 编程语言 > 详细

hdfs深入:10、hdfs的javaAPI操作

时间:2019-05-31 00:46:48      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:syntax   oid   nod   循环   file   use   filesyste   获取   遍历   

 看到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深入:10、hdfs的javaAPI操作

标签:syntax   oid   nod   循环   file   use   filesyste   获取   遍历   

原文地址:https://www.cnblogs.com/mediocreWorld/p/10952959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!