복붙노트

[HADOOP] 하둡 파일이 이미 쓰기 위해 열려 있는지 여부를 확인하는 방법은 없나요?

HADOOP

하둡 파일이 이미 쓰기 위해 열려 있는지 여부를 확인하는 방법은 없나요?

여러 자바 인스턴스는 내 컴퓨터에서 실행하고 나는 하둡 파일이 이미 예 중 어떤 (fs.create (파일) 또는 fs.append (파일)) 모드로 쓰기에 오픈되어 있는지 여부를 확인합니다. 나는 하둡 파일의 FileStatus에 시도, 아무것도 찾을 수 없습니다. 하둡 파일이 이미 쓰기 위해 열려 있는지 여부를 확인하는 방법은 없나요?

한 가지 방법은 생성 / 다시 파일을 추가하고 예외를 잡으려고하는 것입니다,하지만 난 파일의 수천을 가지고 모든 파일을 시도하고 싶지 않아요. / APPEND를 작성하는 것이 성공 인 경우 또한, 그때 파일을 닫해야하고 lastModifiedTime도 변경 얻을 것이다. 나는 하둡 파일의 FileStatus를 수정하지 않습니다.

해결법

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

    1.DistributedFileSystem 파일 쓰기 위하여 개방되어 있는지 여부를 확인하는 방법 isFileClosed (경로)를 제공한다.

    DistributedFileSystem 파일 쓰기 위하여 개방되어 있는지 여부를 확인하는 방법 isFileClosed (경로)를 제공한다.

                    try {
                        DistributedFileSystem dfs = new DistributedFileSystem();
                        Path path = new Path("/path/to/hadoop/file");
                        FileSystem fs = path.getFileSystem(conf);
                        dfs.initialize(fs.getUri(),conf);
                        if (dfs.exists(path) && !dfs.isFileClosed(path)) {
                            System.out.println("File " + path +" already opened in write mode");
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
    
  2. from https://stackoverflow.com/questions/45605977/is-there-any-way-to-check-whether-the-hadoop-file-is-already-opened-for-write by cc-by-sa and MIT license