Hadoop中Amazon S3和S3n之间的差异

65 hadoop amazon-s3 hdfs

当我将Hadoop集群连接到Amazon存储并将文件下载到HDFS时,我发现s3://无法正常工作.在互联网上寻求帮助时,我发现我可以使用S3n.当我用S3n它工作.我不明白使用S3S3n我的Hadoop集群之间的区别,有人可以解释一下吗?

Ste*_*pel 66

用于使用Amazon S3的两个文件系统记录在针对Amazon S3的相应Hadoop Wiki页面中:

  • S3 Native FileSystem(URI scheme:s3n)
    用于在S3上读取和写入常规文件的本机文件系统.此文件系统的优点是您可以访问使用其他工具编写的S3上的文件.相反,其他工具可以访问使用Hadoop编写的文件.缺点是S3强加的文件大小限制为5GB.因此,它不适合替代HDFS(它支持非常大的文件).

  • S3 Block FileSystem(URI scheme:s3)
    由S3支持的基于块的文件系统.文件存储为块,就像它们在HDFS中一样.这允许有效地实现重命名.此文件系统要求您为文件系统专用存储桶 - 不应使用包含文件的现有存储桶,也不应将其他文件写入同一存储桶.此文件系统存储的文件可能大于5GB,但它们不能与其他S3工具互操作.

S3可以通过两种方式与Hadoop的Map/Reduce一起使用,作为使用S3块文件系统替代HDFS(即将 其用作支持非常大的文件的可靠分布式文件系统)或作为数据输入的便捷存储库使用S3文件系统从MapReduce输出和输出.在第二种情况下,HDFS仍用于Map/Reduce阶段.[...]

[强调我的]

所以差异主要与如何处理5GB限制有关(这是可以在单个PUT中上传最大对象,即使对象的大小范围可以从1字节到5TB,请参阅我可以存储多少数据?):当使用S3 Block FileSystem(URI方案:s3)允许修复5GB限制并存储高达5TB的文件时,它依次替换HDFS.

  • 我的示例文件大约是60MB,在这种情况下我可以使用s3或s3n,但只有s3n工作.如果唯一的区别是5GB文件大小限制,那么s3和s3n必须工作,但没有.. (3认同)

Avk*_*han 40

我认为你的主要问题与Hadoop 拥有S3S3n作为两个独立的连接点有关.s3n://表示"在这个S3网址上可以从外部世界读取的常规文件".s3://是指映射到位于AWS存储集群上的S3存储桶的HDFS文件系统.因此,当您使用Amazon存储桶中的文件时,您必须使用S3N,这就是您的问题得到解决的原因.@Steffen添加的信息也很棒!!

  • 现在,对于任何对此感到困惑的人,[aws docs](http://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-plan-file-systems.html)都建议使用s3://前缀s3n:// (2认同)

osa*_*osa 7

以下是解释:https://notes.mindprince.in/2014/08/01/difference-between-s3-block-and-s3-native-filesystem-on-hadoop.html

第一个S3支持的Hadoop文件系统是在Hadoop 0.10.0(HADOOP-574)中引入的.它被称为S3块文件系统,它被分配了URI方案s3://.在此实现中,文件存储为块,就像它们在HDFS中一样.通过这个文件系统存储的文件是不能与其他S3工具互通-这是什么意思是,如果你去到AWS控制台,并尝试寻找该文件系统写入的文件,你不会找到他们-而不是你会发现文件名为像block_-1212312341234512345等.

为了克服这些限制,在Hadoop 0.18.0(HADOOP-930)中引入了另一个S3支持的文件系统.它被称为S3本机文件系统,它被分配了URI方案s3n://.此文件系统允许您访问使用其他工具编写的S3上的文件...当引入此文件系统时,S3的文件大小限制为5GB,因此该文件系统只能使用小于5GB的文件.在2010年底,亚马逊......将文件大小限制从5GB增加到5TB ......

不再推荐使用S3块文件系统.各种Hadoop即服务提供商(如Qubole和Amazon EMR)都将s3://和s3n:// URI映射到S3本机文件系统以确保这一点.

所以总是使用本机文件系统.没有更多的5Gb限制.有时您可能需要键入s3://而不是s3n://,但只需确保您创建的任何文件都在浏览器的bucket explorer中可见.

另请参阅http://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-plan-file-systems.html.

以前,Amazon EMR使用带有URI方案的S3 Native FileSystem,s3n.虽然这仍然有效,但我们建议您使用s3 URI方案以获得最佳性能,安全性和可靠性.

它还说你可以s3bfs://用来访问旧的块文件系统,以前称为s3://.