Sono a conoscenza dell'esistenza di https://wiki.apache.org/hadoop/AmazonS3 e delle seguenti parole:
S3 Native FileSystem (schema URI: s3n) Un filesystem nativo per la lettura e la scrittura di file regolari su S3. Il vantaggio di questo filesystem è che puoi accedere ai file su S3 che sono stati scritti con altri strumenti. Al contrario, altri strumenti possono accedere ai file scritti utilizzando Hadoop. Lo svantaggio è il limite di 5 GB sulla dimensione del file imposto da S3.
S3A (schema URI: s3a) Successore di S3 Native, s3n fs, il sistema S3a: utilizza le librerie di Amazon per interagire con S3. Ciò consente a S3a di supportare file più grandi (nessun limite di 5 GB), operazioni con prestazioni più elevate e altro ancora. Il filesystem vuole essere un sostituto di / successore di S3 Native: tutti gli oggetti accessibili da s3n: // Gli URL dovrebbero essere accessibili anche da s3a semplicemente sostituendo lo schema URL.
S3 Block FileSystem (schema URI: s3) Un filesystem basato su blocchi supportato da S3. I file vengono archiviati come blocchi, proprio come in HDFS. Ciò consente un'implementazione efficiente delle ridenominazioni. Questo filesystem richiede di dedicare un bucket per il filesystem: non dovresti utilizzare un bucket esistente contenente file o scrivere altri file nello stesso bucket. I file memorizzati da questo filesystem possono essere più grandi di 5 GB, ma non sono interoperabili con altri strumenti S3.
Perché un cambio di lettera sull'URI potrebbe fare una tale differenza? Per esempio
val data = sc.textFile("s3n://bucket-name/key")
per
val data = sc.textFile("s3a://bucket-name/key")
Qual è la differenza tecnica alla base di questo cambiamento? Ci sono buoni articoli che posso leggere su questo?
s3a
schema. È possibile che la risposta debba essere rivista.