hdfs操作之获取指定路径下的文件列表

添加pom.xml依赖

        
            org.apache.hive
            hive-jdbc
            2.1.0
            
                
                    org.slf4j
                    slf4j-log4j12
                
                
                
                
                
                
                    org.apache.logging.log4j
                    *
                
                
                    org.eclipse.jetty
                    *
                
                
                    org.eclipse.jetty.orbit
                    javax.servlet
                
                
                    org.mortbay.jetty
                    servlet-api-2.5
                
                
                    javax.servlet
                    servlet-api
                
                
                    org.apache.hive.shims
                    hive-shims-common
                
            
        
    

实现获取指定路径下的文件列表

package worktrain;

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 HdfsController {

    //获取指定路径下的文件列表
    public static void Hdfs() {
        try {
            Configuration conf = new Configuration();
            conf.set("fs.defaultFS", "hdfs://121.36.17.42:9000");
            FileSystem fs = null;
            //fs = FileSystem.get(new URI("hdfs://10.8.6.126:8020"),conf); //这两种方式都可以配置hdfs ip
            fs = FileSystem.get(conf);

            Path path = new Path("/");
            //通过fs的listStatus方法获取一个指定path的所有文件信息(status),因此我们需要传入一个hdfs的路径,返回的是一个filStatus数组
            FileStatus[] fileStatuses = fs.listStatus(path);
            for (FileStatus fileStatus : fileStatuses) {
                //判断当前迭代对象是否是目录
                boolean isDir = fileStatus.isDirectory();
                //获取当前文件的绝对路径
                String fullPath = fileStatus.getPath().toString();
                System.out.println("isDir:" + isDir + ",Path:" + fullPath);
            }
        }
        catch (Exception e){
            System.out.println(e.getStackTrace());
        }
    }

    public static void main(String[] args) {
        Hdfs();
    }
}

 

你可能感兴趣的:(工作学习)