Saya mengetahui keberadaan https://wiki.apache.org/hadoop/AmazonS3 dan kata-kata berikut:
S3 Native FileSystem (skema URI: s3n) Sistem file asli untuk membaca dan menulis file biasa di S3. Keuntungan dari sistem file ini adalah Anda dapat mengakses file di S3 yang ditulis dengan alat lain. Sebaliknya, alat lain dapat mengakses file yang ditulis menggunakan Hadoop. Kerugiannya adalah batas 5GB untuk ukuran file yang diberlakukan oleh S3.
S3A (skema URI: s3a) Penerus S3 Native, s3n fs, sistem S3a: menggunakan pustaka Amazon untuk berinteraksi dengan S3. Hal ini memungkinkan S3a untuk mendukung file yang lebih besar (tidak lebih dari batas 5GB), operasi kinerja yang lebih tinggi dan banyak lagi. Sistem file dimaksudkan sebagai pengganti / penerus S3 Native: semua objek yang dapat diakses dari s3n: // URL juga harus dapat diakses dari s3a hanya dengan mengganti skema URL.
S3 Block FileSystem (skema URI: s3) Sistem file berbasis blok yang didukung oleh S3. File disimpan sebagai blok, sama seperti di HDFS. Ini memungkinkan implementasi penggantian nama yang efisien. Sistem file ini mengharuskan Anda untuk mendedikasikan sebuah keranjang untuk sistem file - Anda tidak boleh menggunakan keranjang yang berisi file, atau menulis file lain ke keranjang yang sama. File yang disimpan oleh sistem file ini bisa lebih besar dari 5GB, tetapi tidak dapat dioperasikan dengan alat S3 lainnya.
Mengapa perubahan huruf pada URI bisa membuat perbedaan seperti itu? Sebagai contoh
val data = sc.textFile("s3n://bucket-name/key")
untuk
val data = sc.textFile("s3a://bucket-name/key")
Apa perbedaan teknis yang mendasari perubahan ini? Apakah ada artikel bagus yang bisa saya baca tentang ini?
s3a
skema. Mungkin saja jawabannya harus direvisi.