복붙노트

[HADOOP] Hadoop 디렉토리 / 파일 마지막 수정 시간

HADOOP

Hadoop 디렉토리 / 파일 마지막 수정 시간

hdfs에있는 모든 dir 및 파일의 마지막 수정 시간을 가져 오는 방법이 있습니까? 정보를 표시하는 페이지를 만들고 싶지만 마지막 mod 시간을 모두 .txt 파일로 가져 오는 방법에 대한 단서가 없습니다.

해결법

  1. ==============================

    1.그것이 도움이되는지보기 :

    그것이 도움이되는지보기 :

    public class HdfsDemo {
    
        public static void main(String[] args) throws IOException {
    
            Configuration conf = new Configuration();
            conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/core-site.xml"));
            conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/hdfs-site.xml"));
            FileSystem fs = FileSystem.get(conf);
            System.out.println("Enter the directory name : ");
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            Path path = new Path(br.readLine());
            displayDirectoryContents(fs, path);
            fs.close();
        }
    
        private static void displayDirectoryContents(FileSystem fs, Path rootDir) {
            // TODO Auto-generated method stub
            try {
    
                FileStatus[] status = fs.listStatus(rootDir);
                for (FileStatus file : status) {
                    if (file.isDir()) {
                        System.out.println("DIRECTORY : " + file.getPath() + " - Last modification time : " + file.getModificationTime());
                        displayDirectoryContents(fs, file.getPath());
                    } else {
                        System.out.println("FILE : " + file.getPath() + " - Last modification time : " + file.getModificationTime());
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    한가지주의 할 점은 getModificationTime ()은 UTC 1970 년 1 월 1 일 이후 파일의 수정 시간을 밀리 초 단위로 반환합니다.

  2. ==============================

    2.각 경로의 상태를 얻으려면 파일과 디렉토리를 반복해야 할 것입니다. 아래 예제 코드를 사용할 수 있습니다. 그러나 확실하지는 않습니다. 파일의 크기가 클 경우에는 얼마나 효율적입니까? 및 디렉토리.

    각 경로의 상태를 얻으려면 파일과 디렉토리를 반복해야 할 것입니다. 아래 예제 코드를 사용할 수 있습니다. 그러나 확실하지는 않습니다. 파일의 크기가 클 경우에는 얼마나 효율적입니까? 및 디렉토리.

    Configuration conf = new Configuration();
    conf.set("fs.default.name", "hdfs://<namenod_ip_address:<port>");
    conf.set("mapred.job.tracker", "<jobtracker_ip_address>:<port>");
    conf.setBoolean("fs.hdfs.impl.disable.cache", true);
    
    FileSystem lfs = FileSystem.get(l_configuration);
    fs.getFileStatus(new Path("/your/path")).getModificationTime();
    
  3. from https://stackoverflow.com/questions/18046112/hadoop-dir-file-last-modification-times by cc-by-sa and MIT license