마이그레이션 가이드: EMRFS에서 S3A Filesystem으로 마이그레이션 - Amazon EMR

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

마이그레이션 가이드: EMRFS에서 S3A Filesystem으로 마이그레이션

EMR-7.10.0 릴리스부터 S3A Filesystem은 다음을 포함한 모든 S3 파일 체계에 대한 EMR 클러스터의 기본 파일 시스템/s3 커넥터입니다.

  • s3://

  • s3n://

  • s3a://

이 변경 사항은 EC2, EKS, EMR Serverless, Glue ETL 환경을 포함한 모든 EMR 배포에 적용됩니다.

EMRFS를 계속 사용하려면 구성 core-site.xml 파일에 다음 속성을 추가하여 구성할 수 있습니다.

<property> <name>fs.s3.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>

기존 EMRFS 구성을 S3A 구성으로 마이그레이션

다음과 같은 사전 정의된 EMRFS 구성 세트는 해당 S3A 구성에 상응하는 구성으로 자동 변환됩니다. 클러스터 또는 작업 재정의를 통해 현재 구현된 모든 구성은 추가 수동 구성 또는 수정 없이 S3A 파일 시스템으로 원활하게 전환됩니다.

기본적으로이 구성 매핑 기능은 자동으로 활성화됩니다. 이 자동 번역을 비활성화하려는 사용자는 core-site.xml 구성 파일에 다음 속성을 추가하여 비활성화할 수 있습니다.

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
EMRFS에서 S3A로의 구성 매핑
EMRFS 구성 이름 S3A 구성 이름
fs.s3.aimd.adjustWindow fs.s3a.aimd.adjustWindow
fs.s3.aimd.enabled fs.s3a.aimd.enabled
fs.s3.aimd.increaseIncrement fs.s3a.aimd.increaseIncrement
fs.s3.aimd.initialRate fs.s3a.aimd.initialRate
fs.s3.aimd.maxAttempts fs.s3a.aimd.maxAttempts
fs.s3.aimd.minRate fs.s3a.aimd.minRate
fs.s3.aimd.reductionFactor fs.s3a.aimd.reductionFactor
fs.s3.sts.endpoint fs.s3a.assumed.role.sts.endpoint
fs.s3.sts.sessionDurationSeconds fs.s3a.assumed.role.session.duration
fs.s3.authorization.roleMapping fs.s3a.authorization.roleMapping
fs.s3.authorization.ugi.groupName.enabled fs.s3a.authorization.ugi.groupName.enabled
fs.s3.credentialsResolverClass fs.s3a.credentials.resolver
fs.s3n.multipart.uploads.enabled fs.s3a.multipart.uploads.enabled
fs.s3n.multipart.uploads.split.size fs.s3a.multipart.size
fs.s3.serverSideEncryption.kms.customEncryptionContext fs.s3a.encryption.context
fs.s3.enableServerSideEncryption fs.s3a.encryption.algorithm
fs.s3.serverSideEncryption.kms.keyId fs.s3a.encryption.key
fs.s3.cse.kms.region fs.s3a.encryption.cse.kms.region
fs.s3.authorization.audit.enabled fs.s3a.authorization.audit.enabled
fs.s3.buckets.create.enabled fs.s3a.bucket.probe
fs.s3.delete.maxBatchSize fs.s3a.bulk.delete.page.size
fs.s3.filestatus.metadata.enabled fs.s3a.metadata.cache.enabled
fs.s3.maxConnections fs.s3a.connection.maximum
fs.s3.maxRetries fs.s3a.retry.limit
fs.s3.metadata.cache.expiration.seconds fs.s3a.metadata.cache.expiration.seconds
fs.s3.buffer.dir fs.s3a.buffer.dir
fs.s3.canned.acl fs.s3a.acl.default
fs.s3.positionedRead.optimization.enabled fs.s3a.positionedRead.optimization.enabled
fs.s3.readFullyIntoBuffers.optimization.enabled fs.s3a.readFullyIntoBuffers.optimization.enabled
fs.s3.signerType fs.s3a.signing-algorithm
fs.s3.storageClass fs.s3a.create.storage.class
fs.s3.threadpool.maxSize fs.s3a.threads.max
fs.s3.useRequesterPaysHeader fs.s3a.requester.pays.enabled
fs.s3n.block.size fs.s3a.block.size
fs.s3n.엔드포인트 fs.s3a.엔드포인트
fs.s3n.ssl.enabled fs.s3a.connection.ssl.enabled
fs.s3.open.acceptsFileStatus fs.s3a.open.acceptsFileStatus
fs.s3.connection.maxIdleMilliSeconds fs.s3a.connection.idle.time
fs.s3.s3AccessGrants.enabled fs.s3a.access.grants.enabled
fs.s3.s3AccessGrants.fallbackToIAM fs.s3a.access.grants.fallback.to.iam

고려 사항 및 제한

  • 모든 EMR 엔진 - Spark, MapReduce, Flink, Tez, Hive 등은 Trino 및 Presto 엔진을 제외하고 S3A를 기본 S3 커넥터로 사용합니다.

  • EMR S3A는 EMR Ranger와의 통합을 지원하지 않습니다. AWS Lake Formation으로 마이그레이션하는 것이 좋습니다.

  • AWS S3A를 사용하는 EMR Spark용 RecordServer를 사용한 Lake Formation 지원은 지원되지 않습니다. Spark 네이티브 FGAC를 사용하는 것이 좋습니다.

  • AWS S3 Select는 지원되지 않습니다.

  • S3A에서는 불완전 멀티파트 업로드(MPU)를 정기적으로 정리하는 옵션을 사용할 수 없습니다. 매달린 MPUs를 정리하도록 S3 버킷 수명 주기 정책을 구성하는 것이 좋습니다.

  • S3 CSE-CUSTOM 암호화를 사용하는 동안 EMRFS에서 S3A로 마이그레이션하려면 사용자 지정 키 공급자를 EMRFSRSAEncryptionMaterialsProvider 인터페이스에서 키링 인터페이스로 다시 작성해야 합니다. 자세한 내용은 S3A CSE-CUSTOM 설정을 참조하세요.

  • EMRFS를 사용하여 생성된 Amazon S3 디렉터리는 '_$folder$' 접미사로 표시된 반면, S3A 파일 시스템을 사용하여 생성된 디렉터리는 S AWS S3 콘솔을 통해 생성된 디렉터리와 일치하는 '/' 접미사로 끝납니다.

  • 사용자 지정 S3 자격 증명 공급자를 사용하려면 이전에 EMRFS 구성에 사용된 것과 동일한 자격 증명 공급자 클래스fs.s3a.aws.credentials.provider로 S3A 구성 속성을 설정합니다fs.s3.customAWSCredentialsProvider.

지원되지 않는 EMRFS 구성

다음 EMRFS 구성은 지원되지 않거나 더 이상 사용되지 않는 것으로 식별되었으므로 S3A 구성에 대한 직접 매핑이 제공되지 않습니다. 이러한 특정 구성은 S3A 파일 시스템으로 마이그레이션하는 동안 자동으로 변환되거나 전달되지 않습니다.

지원되지 않는 EMRFS 구성 및 이유
EMRFS 구성 이름 지원되지 않는 이유
fs.s3.consistent Amazon S3는 read-after-write 일관성을 제공하므로 EMRFS 일관된 보기 기능은 필요하지 않습니다.
fs.s3.consistent.dynamodb.endpoint
fs.s3.consistent.fastFirstRetrySeconds
fs.s3.consistent.fastList
fs.s3.consistent.fastList.batchSize
fs.s3.consistent.fastList.prefetchMetadata
fs.s3.consistent.metadata.accessKey
fs.s3.consistent.metadata.autoCreate
fs.s3.consistent.metadata.capacity.autoIncrease
fs.s3.consistent.metadata.capacity.autoIncrease.factor
fs.s3.consistent.metadata.capacity.autoIncrease.maxRead
fs.s3.consistent.metadata.capacity.autoIncrease.maxWrite
fs.s3.consistent.metadata.conditional
fs.s3.consistent.metadata.delete.ttl.enabled
fs.s3.consistent.metadata.delete.ttl.expiration.seconds
fs.s3.consistent.metadata.etag.verification.enabled
fs.s3.consistent.metadata.read.capacity
fs.s3.consistent.metadata.read.capacity.limit
fs.s3.consistent.metadata.secretKey
fs.s3.consistent.metadata.tableName
fs.s3.consistent.metadata.write.capacity
fs.s3.consistent.metadata.write.capacity.limit
fs.s3.consistent.notification.CloudWatch
fs.s3.consistent.notification.SQS
fs.s3.consistent.notification.SQS.batchSize
fs.s3.consistent.notification.SQS.customMsg
fs.s3.consistent.notification.SQS.pathReportLimit
fs.s3.consistent.notification.SQS.pullWaitTimeSeconds
fs.s3.consistent.notification.SQS.queueName
fs.s3.consistent.retryCount
fs.s3.cse.cryptoStorageMode AWS SDK V1을 사용하는 EMRFS와는 다릅니다. S3A는 이러한 옵션이 지원되지 않는 AWS SDK V2를 사용합니다.
fs.s3.cse.cryptoStorageMode.deleteInstructionFiles.enabled
fs.s3.cse.encryptionV2.enabled
fs.s3.cse.materialsDescription.enabled
fs.s3.multipart.clean.age.threshold S3A에서는 미완료 멀티파트 업로드(MPU)의 정기 정리를 사용할 수 없습니다. 대신 매달린 MPUs를 정리하도록 S3 버킷 수명 주기 정책을 구성합니다.
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max 멀티파트 업로드 스레드가 멈춰 있거나 느려지지 않도록 기능이 추가되었습니다. S3A는 유사한 문제를 나타내지 않으므로 필요하지 않습니다.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.attempts
fs.s3.multipart.th.fraction.parts.completed
fs.s3.instanceProfile.retryCount 이는 기능 및 아키텍처 차이로 인해 S3A에 필요하지 않은 EMRFS별 구성입니다.
fs.s3.instanceProfile.retryPeriodSeconds
fs.s3.externalStagedFiles.maxActiveTasks
fs.s3.folderObject.autoAction.disabled
fs.s3.folderObject.autoInsert
fs.s3.getObject.initialSocketTimeoutMilliseconds
fs.s3.listFiles.incrementalFetch.enabled
fs.s3.listFilesInOrder.includeDescendantsOfFiles
fs.s3.listObjects.encodingType
fs.s3.buckets.create.region
fs.s3.configuration.load.enablebled
fs.s3.create.allowFileNameEndsWithFolderSuffix
fs.s3.open.lazyConnection.enabled
fs.s3.region.fallback
fs.s3.region.retryCount
fs.s3.region.retryPeriodSeconds
fs.s3.rename.algorithm.version
fs.s3.requestHandler.classNames
fs.s3.requestStatistics.enabled
fs.s3.requestStatistics.sinks
fs.s3.retryPeriodSeconds
fs.s3.seekStrategy
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxSize
fs.s3.useDirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retryCount
fs.s3.s3AccessGrants.cacheSize
fs.s3.s3AccessGrants.retryDelayBase
fs.s3.s3AccessGrants.throttledRetryDelayBase
fs.s3.s3AccessGrants.maxRetries