본문 바로가기
AWS

[S3] AWS EMR에서 _$folder$가 생성되는 이유

by hs_seo 2019. 4. 1.

AWS EMR을 이용하여 S3에 데이터를 생성하다 보면 S3에 _$folder$ 라는 이름의 데이터가 생성되는 것을 볼 수 있습니다. 

 

이는 S3가 키-밸류 형태로 데이터를 저장하기 때문에 EMR이 S3에 접근할 때 사용하는 NativeS3FileSystem.java에서 신규 폴더를 생성하면서 파일이 존재하지 않으면 디렉토리를 생성할 때 빈 파일과 함께 생성하도록 설정되어 있기 때문입니다. 

 

데이터를 이용함에 있어서 문제가 없기 때문에 그냥 두시면 됩니다. 

 

다음의 소스 코드를 보면 구현 상태를 확인할 수 있습니다. 

 private static final String FOLDER_SUFFIX = "_$folder$";
 ...
 private boolean mkdir(Path f) throws IOException {
    try {
      FileStatus fileStatus = getFileStatus(f);
      if (!fileStatus.isDir()) {
        throw new IOException(String.format(
            "Can't make directory for path %s since it is a file.", f));

      }
    } catch (FileNotFoundException e) {
      String key = pathToKey(f) + FOLDER_SUFFIX;
      store.storeEmptyFile(key);    
    }
    return true;
}

 

아마존에서 이 파일애 대하여 설명하는 내용도 함께 읽어 보시면 좋습니다. 

 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/emr-s3-empty-files

 

EMR S3 빈 파일

Amazon EMR을 사용하여 데이터를 변환하거나 Amazon S3 안팎으로 이동할 때 " _$folder$" 접미사가 있는 빈 파일 몇 개가 S3 버킷에 표시됩니다. 이들 파일은 무엇이며, 삭제해도 됩니까? Amazon EMR은 관리형 하둡 프레임워크를 사용하여 Amazon S3를 비롯한 AWS 데이터 스토어의 데이터를 처리하고, 배포하고, 상호 작용하는 웹 서비스입니다. S3는 키-값 페어 스토리지 시스템을 사용하므로 하둡 파일 시스템은 " _$fol

aws.amazon.com

반응형