Sono consapevole dell'esistenza di https://wiki.apache.org/hadoop/AmazonS3 e le seguenti parole:Tecnicamente qual è la differenza tra s3n, s3a e s3?
S3 Native FileSystem (schema URI: S3N) Un file system nativo per la lettura e la scrittura di file regolari S3. Il vantaggio di questo filesystem è che è possibile accedere ai file su S3 scritti con altri strumenti. Viceversa, altri strumenti possono accedere ai file scritti usando Hadoop. Lo svantaggio è il limite di 5 GB per le dimensioni del file imposte da S3.
S3A (schema URI: s3a) Un successore di S3 Native, s3n fs, S3a: il sistema utilizza le librerie di Amazon per interagire con S3. Ciò consente a S3a di supportare file più grandi (non più limiti di 5 GB), operazioni con prestazioni più elevate e altro ancora. Il filesystem è destinato a sostituire/successore di S3 Native: tutti gli oggetti accessibili da s3n: // URL dovrebbero essere accessibili da s3a semplicemente sostituendo lo schema dell'URL.
S3 Block FileSystem (schema URI: s3) Un file system basato su blocchi supportato da S3. I file sono archiviati come blocchi, proprio come sono in HDFS. Ciò consente un'efficiente implementazione dei nomi. Questo file system richiede di dedicare un bucket per il filesystem: non si deve utilizzare un bucket esistente contenente file o scrivere altri file nello stesso bucket. I file archiviati da questo filesystem possono essere maggiori di 5 GB, ma non sono interoperabili con altri strumenti S3.
Perché un cambio di lettera sull'URI potrebbe fare la differenza? Per esempio
val data = sc.textFile("s3n://bucket-name/key")
a
val data = sc.textFile("s3a://bucket-name/key")
Qual è la differenza tecnica alla base di questo cambiamento? Ci sono dei buoni articoli che posso leggere su questo?
L'articolo di supporto di Amazon sembra essere ancora aggiornato, ma ora posso scrivere su S3 dai processi EMR utilizzando lo schema 's3a'. È possibile che la risposta debba essere rivista. – mlg
@mig Mentre s3a potrebbe funzionare, e sembra funzionare nella mia esperienza, non è tecnicamente supportato da AWS. Quindi, penso che lo useresti a tuo rischio e pericolo. – jarmod