hdfs操作之獲取指定路徑下的文件列表

添加pom.xml依賴

        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>2.1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <!--                <exclusion>-->
                <!--                    <groupId>log4j</groupId>-->
                <!--                    <artifactId>log4j</artifactId>-->
                <!--                </exclusion>-->
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.jetty.orbit</groupId>
                    <artifactId>javax.servlet</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>servlet-api-2.5</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.hive.shims</groupId>
                    <artifactId>hive-shims-common</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

實現獲取指定路徑下的文件列表

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章