기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
마이그레이션 가이드: 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 구성 이름 |
---|---|
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 구성 이름 | 지원되지 않는 이유 |
---|---|
fs.s3.consistent | Amazon S3는 read-after-write 일관성을 |
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 |