Мне известно о существовании 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: все объекты, доступные из URL-адресов s3n: //, также должны быть доступны из 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
схему. Возможно, ответ следует изменить.