S3A MagicV2 커미터 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

S3A MagicV2 커미터

EMR-6.15.0 릴리스에서 Amazon EMR은 MagicV2 커미터라고 하는 새로운 S3A 커미터 유형을 도입합니다. 이 기능에 대한 자세한 내용은 관련 설명서 섹션을 참조하세요.

MagicV2 커미터는 S3A 파일 시스템을 통해 Amazon S3에 대한 파일 쓰기를 최적화하도록 특별히 설계된 오픈 소스 MagicCommitter의 향상된 구현을 나타냅니다. 이전 버전과 마찬가지로 Amazon S3의 멀티파트 업로드 기능을 활용하여 일반적으로 작업 및 작업 커밋 단계와 관련된 기존 목록 및 이름 바꾸기 작업을 제거합니다.

원래 MagicCommitter에 비해 MagicV2 커미터는 작업 커밋 단계가 아닌 작업 커밋 단계 중에 작업의 출력 위치에 파일을 기록하여 우수한 성능을 보여줍니다. 이 접근 방식을 사용하면 분산 파일 쓰기가 가능하고 Amazon S3에서 임시 커밋 메타데이터 스토리지가 필요하지 않으므로 비용 효율성이 향상됩니다. 또한 MagicV2 커미터는 커밋 프로세스 중에 여러 스레드에서 파일 경로를 덮어쓸 수 있으므로 유연성이 향상됩니다.

MagicV2 커미터 활성화

MagicV2 커미터를 활성화하려면 작업 구성에 다음 구성을 전달하거나 코어 사이트 구성을 사용하여 속성을 설정합니다. 자세한 내용은 애플리케이션 구성을 참조하세요.

mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true

새 파일을 커밋하거나 쓰기 전에 기존 디렉터리를 덮어써야 하는 워크로드의 경우 앞서 언급한 구성과 함께 다음과 같은 추가 구성이 필요합니다.

fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=thread size

threads 구성의 기본값은 입니다20. 그러나 더 나은 성능을 위해 덮어써야 할 디렉터리가 많은 경우이 파라미터를 조정해야 합니다. 이는 EMR-7.2.0 이상에서만 사용할 수 있습니다.

고려 사항

  • 작업이 실행되고 Amazon S3에 데이터를 쓰는 동안 Java 가상 머신(JVM)이 충돌하거나 종료되면 불완전한 멀티파트 업로드가 뒤쳐질 가능성이 더 높습니다. 따라서 MagicV2 커미터를 사용할 때는 실패한 멀티파트 업로드를 관리하는 모범 사례를 따라야 합니다. 자세한 내용은 Amazon EMR 관리 안내서의 Amazon S3 버킷 작업 모범 사례 섹션을 참조하세요.

  • 작업이 실패하더라도 성공한 작업에 의해 커밋된 모든 파일은 대상 경로에 계속 표시됩니다. 이러한 경우 사용자는 동일한 대상 경로에서 작업을 다시 실행하기 전에 커밋된 파일을 수동으로 정리해야 합니다.

  • MagicV2 커미터는 작업이 커밋되거나 중단될 때까지 작업 시도로 작성된 각 파일에 대해 소량의 메모리를 사용합니다. 대부분의 작업에서 사용된 메모리 양은 무시해도 됩니다. 그러나 단일 실행기 프로세스가 많은 수의 작업을 동시에 처리하는 경우 메모리 압력이 높아지고 컨테이너 또는 실행기 메모리 부족(OOM)이 발생할 수 있습니다. 컨테이너 또는 실행기 메모리를 늘리면이 문제가 해결됩니다.