

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
<a name="emr-s3a-migrate"></a>

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
<a name="emr-s3a-migration-of-existing-emrfs-configurations"></a>

**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
<a name="emr-s3a-migration-considerations-and-limitations"></a>
+ 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) 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](https://github.com/awslabs/emr-sample-apps/tree/master/emrfs-plugins/EMRFSRSAEncryptionMaterialsProvider)](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/choose-keyring.html) Weitere Informationen finden Sie unter S3A einrichten. [CSE-CUSTOM](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-s3a-cse-custom.html)
+ 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
<a name="emr-s3a-migration-unsupported"></a>

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**  
<a name="unsupported-emrfs-configs"></a>
<table>
<thead>
  <tr><th>EMRFS-Konfigurationsname</th><th>Grund für die Nichtunterstützung</th></tr>
</thead>
<tbody>
  <tr><td>fs.s3.consistent</td><td rowspan="30">Amazon S3 bietet eine [hohe Konsistenz beim Lesen nach dem Schreiben](https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/), weshalb die Funktion EMRFS Consistent View nicht erforderlich ist.</td></tr>
  <tr><td>fs.s3.consistent.dynamodb.endpoint</td></tr>
  <tr><td>fs.s3.sistent.schnell FirstRetrySeconds</td></tr>
  <tr><td>fs.s3.Consistent.FastList</td></tr>
  <tr><td>fs.s3.konsistent.schnell List.batchSize</td></tr>
  <tr><td>fs.s3.konsistent.schnell List.prefetchMetadata</td></tr>
  <tr><td>fs.s3.Consistent.Metadata.AccessKey</td></tr>
  <tr><td>fs.S3. Consistent.Metadata.AutoCreate</td></tr>
  <tr><td>fs.s3.Consistent.Metadata.Capacity.AutoIncrease</td></tr>
  <tr><td>fs.s3.sistent.metadata.capacity.auto Increase.factor</td></tr>
  <tr><td>fs.s3.sistent.metadata.capacity.auto Increase.maxRead</td></tr>
  <tr><td>fs.s3.sistent.metadata.capacity.auto Increase.maxWrite</td></tr>
  <tr><td>fs.s3.sistent.metadata.conditional</td></tr>
  <tr><td>fs.s3.consistent.metadata.delete.ttl.enabled</td></tr>
  <tr><td>fs.s3.consistent.metadata.delete.ttl.ablauf.sekunden</td></tr>
  <tr><td>fs.s3.consistent.metadata.etag.verification.enabled</td></tr>
  <tr><td>fs.s3.consistent.metadata.read.capacity</td></tr>
  <tr><td>fs.s3.sistent.metadata.read.capacity.limit</td></tr>
  <tr><td>fs.s3.Consistent.Metadata.SecretKey</td></tr>
  <tr><td>fs.s3.Consistent.Metadata.Tabellenname</td></tr>
  <tr><td>fs.s3.sistent.metadata.write.capacity</td></tr>
  <tr><td>fs.s3.sistent.metadata.write.capacity.limit</td></tr>
  <tr><td>fs.s3.consistent. Benachrichtigung. CloudWatch</td></tr>
  <tr><td>fs.s3.Consistent.Notification.sqs</td></tr>
  <tr><td>fs.s3.consistent.notification. SQS.batchSize</td></tr>
  <tr><td>fs.s3.consistent. Benachrichtigung. SQS.customMsg</td></tr>
  <tr><td>fs.s3.consistent. Benachrichtigung. SQS.pathReportLimit</td></tr>
  <tr><td>fs.s3.consistent. Benachrichtigung. SQS.pullWaitTimeSeconds</td></tr>
  <tr><td>fs.s3.consistent. Benachrichtigung. SQS.queueName</td></tr>
  <tr><td>fs.s3.Consistent.RetryCount</td></tr>
  <tr><td>fs.s3.cse.crypto StorageMode</td><td rowspan="4">Im Gegensatz zu EMRFS, das SDK V1 verwendet. AWS S3A verwendet AWS SDK V2, wo diese Optionen nicht unterstützt werden.</td></tr>
  <tr><td>fs.s3.cse.crypto StorageMode.deleteInstructionFiles.enabled</td></tr>
  <tr><td>fs.s3.cse.Verschlüsselung V2.enabled</td></tr>
  <tr><td>fs.s3.cse.materialien Description.enabled</td></tr>
  <tr><td>fs.s3.multipart.clean.age.threshold</td><td rowspan="2">[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.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)</td></tr>
  <tr><td>fs.s3.multipart.clean.enabled</td></tr>
  <tr><td>fs.s3.multipart.clean.jitter.max</td><td rowspan="4">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.</td></tr>
  <tr><td>fs.s3.multipart.fraction.part.avg.completion.time</td></tr>
  <tr><td>fs.s3.multipart.part.versucht</td></tr>
  <tr><td>fs.s3.multipart.th.fraction.parts.abgeschlossen</td></tr>
  <tr><td>fs.s3.instanz Profile.retryCount</td><td rowspan="31">Dies sind EMRFS-spezifische Konfigurationen, die in S3A aufgrund von Funktions- und Architekturunterschieden nicht erforderlich sind.</td></tr>
  <tr><td>fs.s3.instance Profile.retryPeriodSeconds</td></tr>
  <tr><td>fs.s3. extern StagedFiles.maxActiveTasks</td></tr>
  <tr><td>fs.s3.ordner Object.autoAction.disabled</td></tr>
  <tr><td>fs.s3-Ordner Object.autoInsert</td></tr>
  <tr><td>fs.s3.get Object.initialSocketTimeoutMilliseconds</td></tr>
  <tr><td>fs.s3.list Files.incrementalFetch.enabled</td></tr>
  <tr><td>fs.s3.liste FilesInOrder.includeDescendantsOfFiles</td></tr>
  <tr><td>fs.s3.liste Objects.encodingType</td></tr>
  <tr><td>fs.s3.buckets.create.region</td></tr>
  <tr><td>fs.s3.configuration.load.enablebled</td></tr>
  <tr><td>fs.s3.create.allow FileNameEndsWithFolderSuffix</td></tr>
  <tr><td>fs.s3.open.lazy Connection.enabled</td></tr>
  <tr><td>fs.s3.region.fallback</td></tr>
  <tr><td>fs.s3.region.Anzahl wiederholen</td></tr>
  <tr><td>fs.s3.region.erneut versuchen PeriodSeconds</td></tr>
  <tr><td>fs.s3.rename.algorithm.version</td></tr>
  <tr><td>fs.s3. Anfrage Handler.classNames</td></tr>
  <tr><td>fs.s3.anfrage Statistics.enabled</td></tr>
  <tr><td>fs.s3.anfrage Statistics.sinks</td></tr>
  <tr><td>fs.s3. erneut versuchen PeriodSeconds</td></tr>
  <tr><td>fs.s3.seek-Strategie</td></tr>
  <tr><td>fs.s3.threadpool.buffer.size</td></tr>
  <tr><td>fs.s3.threadpool.maxGröße</td></tr>
  <tr><td>fs.s3.use DirectoryHeaderAsFolderObject</td></tr>
  <tr><td>fs.s3n.filestatuscache.enable</td></tr>
  <tr><td>fs.s3.delete.retryCount</td></tr>
  <tr><td>fs.s3.s3 AccessGrants.cacheSize</td></tr>
  <tr><td>fs.s3.s3 AccessGrants.retryDelayBase</td></tr>
  <tr><td>fs.s3.s3 AccessGrants.throttledRetryDelayBase</td></tr>
  <tr><td>fs.s3.s3 AccessGrants.maxRetries</td></tr>
</tbody>
</table>
