Различия между Amazon S3 и S3n в Hadoop


когда я подключил свой кластер Hadoop к хранилищу Amazon и загрузил файлы в HDFS, я нашел s3:// не работает. При поиске некоторой помощи в Интернете я обнаружил, что могу использовать S3n. Когда я использовал S3n это сработало. Я не понимаю разницы между использованием S3 и S3n С моим кластером Hadoop, может кто-нибудь объяснить?

3 61

3 ответа:

Я думаю, что ваша главная проблема была связана с наличием S3 и S3n как две отдельные точки подключения для Hadoop. s3n:// означает "обычный файл, читаемый из внешнего мира, по этому url S3". s3:// относится к файловой системе HDFS, отображенной в корзину S3, которая находится в кластере хранения AWS. Поэтому, когда вы использовали файл из Amazon storage bucket, вы должны использовать S3N, и именно поэтому ваша проблема решена. Информация, добавленная @Steffen, также великолепна!!

две файловые системы для использования Amazon S3 задокументированы в соответствующем Hadoop wiki страница адресации Amazon S3:

  • собственная файловая система S3 (схема URI: s3n)
    Собственная файловая система для чтения и записи обычных файлов на S3. Преимущество этого файловая система заключается в том, что вы можете получить доступ к файлам на S3, которые были написаны с помощью другие средства. и наоборот, другие инструменты могут получить доступ к записанным файлам с помощью платформа Hadoop. Недостатком является ограничение 5 ГБ на размер файла, наложенное S3. По этой причине он не подходит в качестве замены для HDFS (который имеет поддержку очень больших файлов).

  • файловая система блока S3 (схема URI: s3)
    Блочная файловая система, поддерживаемая S3. Файлы хранятся в виде блоков, так как они находятся в HDFS. Это позволяет эффективно выполнять переименования. Этот файловая система требует от вас выделите ведро для файловой системы-вы не следует использовать существующую корзину, содержащую файлы, или писать другие файлы в том же ведре. файлы, хранящиеся в этой файловой системе могут быть больше, чем 5 ГБ, но они не совместимы с другими инструментами S3.

существует два способа использования S3 с картой/уменьшением Hadoop, либо в качестве замены для HDFS с использованием файловой системы блока S3 (т. е. используя его как надежный распределенная файловая система с поддержкой очень большие файлы) или как удобный репозиторий для ввода данных в и вывод из MapReduce, используя любую файловую систему S3. Во втором случае HDFS по-прежнему используется для фазы Map/Reduce. [...]

[выделено мной]

таким образом, разница в основном связана с тем, как в 5ГБ обрабатывается (это самый большой объект, который может быть загружен в один PUT, хотя объекты могут иметь размер от 1 байта до 5 терабайт см. сколько данных я могу хранить?): при использовании файловая система блока S3 (схема URI: s3) позволяет исправить ограничение 5 ГБ и хранить файлы до 5 ТБ, он заменяет HDFS в свою очередь.

вот объяснение: https://notes.mindprince.in/2014/08/01/difference-between-s3-block-and-s3-native-filesystem-on-hadoop.html

первая файловая система Hadoop с поддержкой S3 была представлена в Hadoop 0.10.0 (HADOOP-574). Он назывался файловой системой блока S3 и ему была присвоена схема URI s3://. В этой реализации файлы хранятся в виде блоков, как и в HDFS. Файлы, хранящиеся в этой файловой системе, не совместимы с другими S3 tools-что это значит, что если вы перейдете в консоль AWS и попытаетесь найти файлы, написанные этой файловой системой, вы их не найдете - вместо этого вы найдете файлы с именем что-то вроде block_-1212312341234512345 etc.

чтобы преодолеть эти ограничения, в Hadoop 0.18.0 была введена другая файловая система с поддержкой S3 (HADOOP-930). Он назывался собственной файловой системой S3 и ему была назначена схема URI s3n://. Эта файловая система позволяет вам получить доступ к файлам на S3, которые были написаны и с другими инструментами... Когда эта файловая система была введена, у S3 был предел размера файла 5 ГБ, и поэтому эта файловая система могла работать только с файлами меньше 5 ГБ. В конце 2010 года Amazon... увеличено ограничение на размер файла с 5 ГБ до 5 ТБ...

использование файловой системы блока S3 больше не рекомендуется. различные поставщики Hadoop-as-a-service, такие как Qubole и Amazon EMR, доходят до сопоставления как S3://, так и S3n:// URI с собственной файловой системой S3, чтобы обеспечить этот.

поэтому всегда используйте собственную файловую систему. Существует не более 5 ГБ предел. Иногда вам может потребоваться ввести s3:// вместо s3n://, но просто убедитесь, что все файлы, которые вы создаете, видны в обозревателе ведер в браузере.

Также см. http://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-plan-file-systems.html.

ранее Amazon EMR использовал собственную файловую систему S3 со схемой URI, хотя это все еще работает, мы рекомендуем использовать схему URI s3 для лучшей производительности, безопасности и надежности.

Он также говорит, что вы можете использовать s3bfs:// для доступа к старой файловой системе блока, ранее известной как s3://.