Мені відомо про існування https://wiki.apache.org/hadoop/AmazonS3 та таких слів:
S3 Native FileSystem (схема URI: s3n) Нативна файлова система для читання та запису звичайних файлів на S3. Перевага цієї файлової системи полягає в тому, що ви можете отримати доступ до файлів на S3, записаних за допомогою інших інструментів. І навпаки, інші інструменти можуть отримати доступ до файлів, написаних за допомогою Hadoop. Недоліком є обмеження в 5 Гб щодо розміру файлу, накладеного S3.
S3A (схема URI: s3a) Наступник S3 Native, s3n fs, система S3a: використовує бібліотеки Amazon для взаємодії з S3. Це дозволяє S3a підтримувати більші файли (не більше 5 Гб), більш високі операційні операції та багато іншого. Файлова система призначена для заміни / наступника S3 Native: всі об'єкти, доступні з s3n: // URL-адреси, також повинні бути доступні з s3a, просто замінивши схему URL-адрес.
Файлова система блоку S3 (схема URI: s3) Файлова система на основі блоку, підтримувана S3. Файли зберігаються у вигляді блоків, як і у HDFS. Це дозволяє ефективно виконувати перейменування. Ця файлова система вимагає, щоб ви виділили відро для файлової системи - ви не повинні використовувати існуюче відро, що містить файли, або писати інші файли до того ж відра. Файли, що зберігаються в цій файловій системі, можуть бути більшими за 5 Гб, але вони не сумісні з іншими інструментами S3.
Чому зміна листа на URI може змінити таку зміну? Наприклад
val data = sc.textFile("s3n://bucket-name/key")
до
val data = sc.textFile("s3a://bucket-name/key")
Яка технічна різниця, що лежить в основі цієї зміни? Чи є якісь хороші статті, які я можу прочитати з цього приводу?
s3a
схему. Цілком можливо, що відповідь слід переглянути.