View a markdown version of this page

Migrationshandbuch: EMRFS zum S3A-Dateisystem - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrationshandbuch: EMRFS zum S3A-Dateisystem

Ab der EMR-7.10.0 Version ist das S3A-Dateisystem der filesystem/s3 Standardkonnektor für EMR-Cluster für alle S3-Dateischemas, einschließlich der folgenden:

  • s3://

  • s3n://

  • s3a://

Diese Änderung gilt für alle EMR-Bereitstellungen, einschließlich EC2, EKS und EMR Serverless.

Wenn Sie EMRFS weiterhin verwenden möchten, können Sie dies konfigurieren, indem Sie der Konfigurationsdatei die folgende Eigenschaft hinzufügen: core-site.xml

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

Migration vorhandener EMRFS-Konfigurationen zu S3A-Konfigurationen

Anmerkung

Amazon EMR implementiert die automatische Konfigurationszuweisung zwischen EMRFS und S3A, wenn bestimmte Bedingungen erfüllt sind. Der Zuordnungsprozess erfolgt automatisch, wenn S3A-Konfigurationen nicht definiert sind, während entsprechende EMRFS-Konfigurationen vorhanden sind. Diese automatische Zuordnungsfunktion erstreckt sich auf Konfigurationen auf Bucket-Ebene und ermöglicht eine nahtlose Integration zwischen EMRFS- und S3A-Einstellungen. Zur Veranschaulichung: Wenn Sie eine bucket-spezifische Verschlüsselungseinstellung in EMRFS mithilfe von SideEncryption.kms.keyId 'fs.s3.bucket.amzn-s3-demo-bucket1.server' mit dem Wert „XYZ“ konfigurieren, ordnet das System diese automatisch der entsprechenden S3A-Konfiguration zu, indem 'fs.s3a.encryption.key' für den angegebenen Bucket amzn-s3-demo-bucket1 auf „XYZ“ gesetzt wird.

Der folgende vordefinierte Satz von EMRFS-Konfigurationen wird automatisch in die entsprechenden S3A-Konfigurationsäquivalente übersetzt. Alle Konfigurationen, die derzeit über Cluster- oder Job-Overrides implementiert werden, werden nahtlos auf das S3A-Dateisystem umgestellt, ohne dass zusätzliche manuelle Konfigurationen oder Änderungen erforderlich sind.

Standardmäßig ist diese Funktion zur Konfigurationszuweisung automatisch aktiviert. Benutzer, die diese automatische Übersetzung deaktivieren möchten, können dies tun, indem sie der Konfigurationsdatei core-site.xml die folgende Eigenschaft hinzufügen.

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
Anmerkung

Die Zuordnung der Verschlüsselungsschlüssel von EMRFS (fs.s3.server SideEncryption.kms.keyId oder fs.s3.cse.kms.keyID) zu S3A (fs.s3a.encryption.key) erfolgt nur, wenn entweder die Verschlüsselung oder auf einem der Dateisysteme aktiviert ist. SSE-KMS CSE-KMS

Zuordnung der Konfiguration von EMRFS zu S3A
Name der EMRFS-Konfiguration S3A-Konfigurationsname
fs.s3.aimd.AdjustWindow fs.s3a.aimd.AdjustWindow
fs.s3.aimd.aktiviert fs.s3a.aimd.aktiviert
fs.s3.aimd.Inkrement erhöhen fs.s3a.aimd.Erhöhen Sie das Inkrement
fs.s3.aimd. Anfangsrate fs.s3a.aimd.InitialRate
fs.s3.aimd.max Versuche fs.s3a.aimd.max-Versuche
Rate fs.s3.aimd.min Rate fs.s3a.aimd.min
fs.s3.aimd.Reduktionsfaktor fs.s3a.aimd.Reduktionsfaktor
fs.s3.sts.endpoint fs.s3a.assumed.role.sts.endpoint
fs.s3.sts.session DurationSeconds fs.s3a.assumed.role.session.duration
fs.s3.authorization.rolemapping fs.s3a.authorization.RoleMapping
fs.s3.authorization.ugi.group Name.enabled fs.s3a.authorization.ugi.group Name.enabled
fs.s3. Anmeldeinformationen ResolverClass fs.s3a.credentials als.resolver
fs.s3n.multipart.uploads.enabled fs.s3a.multipart.uploads.enabled
fs.s3n.multipart.uploads.split.size fs.s3a.multipart.size
fs.s3.server SideEncryption.kms.customEncryptionContext fs.s3a.Verschlüsselung.Kontext
fs.s3.enable ServerSideEncryption fs.s3a.Verschlüsselung.Algorithmus
fs.s3.server/SideEncryption.kms.keyId fs.s3.cse.kms.keyID fs.s3a.encryption.key
fs.s3.cse.kms.region fs.s3a.verschlüsselung.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.max BatchSize fs.s3a.bulk.delete.page.size
fs.s3.filestatus.metadata.enabled fs.s3a.metadata.cache.enabled
fs.S3.max-Verbindungen fs.s3a.Verbindung.Maximum
fs.s3.max versucht es erneut 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 hat .acl gescannt fs.s3a.acl.default
fs.s3. positioniert Read.optimization.enabled fs.s3a.positioniert Read.optimization.enabled
fs.s3.read FullyIntoBuffers.optimization.enabled fs.s3a.lesen FullyIntoBuffers.optimization.enabled
Typ fs.s3.signer fs.s3a.Signierungsalgorithmus
fs.s3.Storage-Klasse fs.s3a.create.storage.class
fs.s3.threadpool.maxSize fs.s3a.threads.max
fs.s3.use RequesterPaysHeader fs.s3a.requester.pays.enabled
fs.s3n.block.size fs.s3a.block.size
fs.s3n.Endpunkt fs.s3a.endpoint
fs.s3n.ssl.enabled fs.s3a.connection.ssl.enabled
fs.s3.open.akzeptiert FileStatus fs.s3a.open.akzeptiert FileStatus
fs.s3.connection.max IdleMilliSeconds fs.s3a.connection.idle.time
fs.s3.s3 AccessGrants.enabled fs.s3a.access.grants.enabled
fs.s3.s3 AccessGrants.fallbackToIAM fs.s3a.access.grants.fallback.to.iam

Überlegungen und Einschränkungen

  • Alle EMR-Engines — Spark, Flink MapReduce, Tez, Hive usw. — verwenden S3A als Standard-S3-Anschluss, mit Ausnahme der Trino- und Presto-Motoren.

  • EMR S3A unterstützt keine Integration mit EMR Ranger. Erwägen Sie, nach AWS Lake Formation zu migrieren.

  • AWS Lake Formation Support mit RecordServer For EMR Spark with S3A wird nicht unterstützt. Erwägen Sie die Verwendung von Spark Native FGAC.

  • AWS S3 Select wird nicht unterstützt.

  • Die Option zur regelmäßigen Bereinigung unvollständiger mehrteiliger Uploads (MPU) ist in S3A nicht verfügbar. Ziehen Sie in Erwägung, die S3-Bucket-Lebenszyklusrichtlinie zu konfigurieren, um hängende MPUs zu bereinigen.

  • Um bei Verwendung der CSE-CUSTOM S3-Verschlüsselung von EMRFS zu S3A zu migrieren, muss der benutzerdefinierte Schlüsselanbieter von Schnittstelle zu Keyring-Schnittstelle neu geschrieben werden. EMRFSRSAEncryptionMaterialsProvider Weitere Informationen finden Sie unter S3A einrichten. CSE-CUSTOM

  • Amazon S3 S3-Verzeichnisse, die mit EMRFS erstellt wurden, sind mit dem Suffix '_$folder$' gekennzeichnet, während Verzeichnisse, die mit dem S3A-Dateisystem erstellt wurden, mit dem Suffix '/' enden, was mit Verzeichnissen übereinstimmt, die über die S3-Konsole erstellt wurden. AWS

  • Um einen benutzerdefinierten S3-Anmeldeinformationsanbieter zu verwenden, legen Sie für die S3A-Konfigurationseigenschaft dieselbe Anbieterklasse für Anmeldeinformationen fest, die zuvor in der fs.s3a.aws.credentials.provider EMRFS-Konfiguration verwendet wurde. fs.s3.customAWSCredentialsProvider

EMRFS-Konfigurationen werden nicht unterstützt

Die folgenden EMRFS-Konfigurationen wurden als nicht unterstützt oder veraltet identifiziert. Daher wird keine direkte Zuordnung zu ihren Gegenstücken in der S3A-Konfiguration bereitgestellt. Diese spezifischen Konfigurationen werden während der Migration in das S3A-Dateisystem nicht automatisch übersetzt oder übernommen.

Nicht unterstützte EMRFS-Konfigurationen und Gründe
EMRFS-Konfigurationsname Grund für die Nichtunterstützung
fs.s3.consistent Amazon S3 bietet eine hohe Konsistenz beim Lesen nach dem Schreiben, weshalb die Funktion EMRFS Consistent View nicht erforderlich ist.
fs.s3.consistent.dynamodb.endpoint
fs.s3.sistent.schnell FirstRetrySeconds
fs.s3.Consistent.FastList
fs.s3.konsistent.schnell List.batchSize
fs.s3.konsistent.schnell List.prefetchMetadata
fs.s3.Consistent.Metadata.AccessKey
fs.S3. Consistent.Metadata.AutoCreate
fs.s3.Consistent.Metadata.Capacity.AutoIncrease
fs.s3.sistent.metadata.capacity.auto Increase.factor
fs.s3.sistent.metadata.capacity.auto Increase.maxRead
fs.s3.sistent.metadata.capacity.auto Increase.maxWrite
fs.s3.sistent.metadata.conditional
fs.s3.consistent.metadata.delete.ttl.enabled
fs.s3.consistent.metadata.delete.ttl.ablauf.sekunden
fs.s3.consistent.metadata.etag.verification.enabled
fs.s3.consistent.metadata.read.capacity
fs.s3.sistent.metadata.read.capacity.limit
fs.s3.Consistent.Metadata.SecretKey
fs.s3.Consistent.Metadata.Tabellenname
fs.s3.sistent.metadata.write.capacity
fs.s3.sistent.metadata.write.capacity.limit
fs.s3.consistent. Benachrichtigung. CloudWatch
fs.s3.Consistent.Notification.sqs
fs.s3.consistent.notification. SQS.batchSize
fs.s3.consistent. Benachrichtigung. SQS.customMsg
fs.s3.consistent. Benachrichtigung. SQS.pathReportLimit
fs.s3.consistent. Benachrichtigung. SQS.pullWaitTimeSeconds
fs.s3.consistent. Benachrichtigung. SQS.queueName
fs.s3.Consistent.RetryCount
fs.s3.cse.crypto StorageMode Im Gegensatz zu EMRFS, das SDK V1 verwendet. AWS S3A verwendet AWS SDK V2, wo diese Optionen nicht unterstützt werden.
fs.s3.cse.crypto StorageMode.deleteInstructionFiles.enabled
fs.s3.cse.Verschlüsselung V2.enabled
fs.s3.cse.materialien Description.enabled
fs.s3.multipart.clean.age.threshold Die regelmäßige Bereinigung unvollständiger mehrteiliger Uploads (MPU) ist mit S3A nicht verfügbar. Konfigurieren Sie stattdessen die S3-Bucket-Lebenszyklusrichtlinie, um baumelnde MPUs zu bereinigen.
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max Die Funktion wurde hinzugefügt, um zu verhindern, dass mehrteilige Upload-Threads hängen bleiben oder langsam werden. S3A hat kein ähnliches Problem und ist daher nicht erforderlich.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.versucht
fs.s3.multipart.th.fraction.parts.abgeschlossen
fs.s3.instanz Profile.retryCount Dies sind EMRFS-spezifische Konfigurationen, die in S3A aufgrund von Funktions- und Architekturunterschieden nicht erforderlich sind.
fs.s3.instance Profile.retryPeriodSeconds
fs.s3. extern StagedFiles.maxActiveTasks
fs.s3.ordner Object.autoAction.disabled
fs.s3-Ordner Object.autoInsert
fs.s3.get Object.initialSocketTimeoutMilliseconds
fs.s3.list Files.incrementalFetch.enabled
fs.s3.liste FilesInOrder.includeDescendantsOfFiles
fs.s3.liste Objects.encodingType
fs.s3.buckets.create.region
fs.s3.configuration.load.enablebled
fs.s3.create.allow FileNameEndsWithFolderSuffix
fs.s3.open.lazy Connection.enabled
fs.s3.region.fallback
fs.s3.region.Anzahl wiederholen
fs.s3.region.erneut versuchen PeriodSeconds
fs.s3.rename.algorithm.version
fs.s3. Anfrage Handler.classNames
fs.s3.anfrage Statistics.enabled
fs.s3.anfrage Statistics.sinks
fs.s3. erneut versuchen PeriodSeconds
fs.s3.seek-Strategie
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxGröße
fs.s3.use DirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retryCount
fs.s3.s3 AccessGrants.cacheSize
fs.s3.s3 AccessGrants.retryDelayBase
fs.s3.s3 AccessGrants.throttledRetryDelayBase
fs.s3.s3 AccessGrants.maxRetries