可以用bin/Hadoop fs -ls 来读取HDFS某一目录下的文件列表及属性信息。
也可以采用HDFS的API来读取。如下:
import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileUtil; public class? FilesList { ?public static void main(String[] args) throws Exception ?{ ? if(args.length != 1){ ? ?System.out.println("Usage : FilesList <target>"); ? ?System.exit(1); ? } ? Configuration conf = new Configuration(); ? FileSystem hdfs = FileSystem.get(URI.create(args[0]),conf); ? FileStatus[] fs = hdfs.listStatus(new Path(args[0])); ? Path[] listPath = FileUtil.stat2Paths(fs); ? for(Path p : listPath) ? ?System.out.println(p); ?} }