递归打印出HDFS上的所有文件夹
2015-12-23 22:33
405 查看
package com.hadoop.hdfs; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class ListHdfsFiles { public static Configuration conf = new Configuration(); public static String uri = "hdfs://hadoop01:9000/"; public static Path path = new Path("hdfs://hadoop01:9000/"); public static FileSystem fs = null; public static void main(String[] args) throws IOException, URISyntaxException { fs = FileSystem.get(new URI(uri),conf); //从hdfs根路径开始 FileStatus[] files = fs.listStatus(path); //开始调用打印函数 for(FileStatus file : files){ printHdfs(file,fs); } } public static void printHdfs(FileStatus file,FileSystem fs) throws FileNotFoundException, IOException{ //如果为文件夹,则打印其hdfs路径 if(file.isDirectory()){ if(!file.isFile()){ System.out.println(file.getPath()); } //得到该路径下的文件 FileStatus[] files = fs.listStatus(file.getPath()); //如果该路径下仍然有文件,则递归调用打印函数 if(files.length>0){ for(FileStatus f : files) printHdfs(f,fs); } } } }
相关文章推荐
- 格式化HDFS
- 在Hadoop集群环境中为MySQL安装配置Sqoop的教程
- 在Hadoop集群环境中为MySQL安装配置Sqoop的教程
- hdfs dfs
- 【解决】HDFS HA无法自动切换问题
- Hdfs增量导入小文件合并的思路
- Hdfs增量导入小文件合并的思路
- Hdfs增量导入小文件合并的思路
- HDFS学习总结
- 如何学习Hadoop
- Hdfs 导入Hive,时间相关的字段 导入后为NULL
- HDFS分布式文件系统资源管理器开发总结
- HDFS源码分析(二)-----元数据备份机制
- HDFS源码分析(六)-----租约
- HDFS源码分析(五)-----节点注册与心跳机制
- HDFS源码分析(四)-----节点Decommission机制
- HDFS源码分析(三)-----数据块关系基本结构
- HDFS数据资源使用量分析以及趋势预测
- hive 使用笔记(partition; HDFS乱码;日期函数)
- flume坑之channel.transactionCapacity和HdfsSink.batchSize