Hadoop中Amazon S3和S3n之间的差异


71

当我将Hadoop集群连接到Amazon存储并将文件下载到HDFS时,我发现s3://它不起作用。在Internet上寻求帮助时,我可以使用S3n。当我使用S3n它的时候。我不明白,使用之间的区别S3,并S3n与我的Hadoop集群,有人能解释一下吗?


4
这怎么没话题!?
Maziyar 2013年

Answers:


44

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


我知道为什么会出问题了。谢谢。

1
我相信在AWS EMR中,s3:和s3n:方案都是相同的。Hadoop 2.x +建议仍然使用s3a :。
DavidJ

2
对于现在绊脚石的任何人,aws文档现在建议在s3n://之前使用s3://前缀
Papples

69

在使用Amazon S3的两个文件系统中分别记录了指向Amazon S3的Hadoop Wiki页面

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

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

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

[强调我的]

因此,差异主要与5GB限制的处理方式有关(这是可以在单个PUT中上载最大对象,即使对象的大小范围可以从1字节到5 TB,请参见我可以存储多少数据?):使用S3块文件系统(URI方案:s3)可以弥补5GB的限制并存储高达5TB的文件时,它会依次替换HDFS。


3
我的示例文件约为60MB,在这种情况下,我可以使用s3或s3n,但只有s3n可以工作。如果唯一的区别是5GB的文件大小限制,然后双方S3和S3N必须工作,但没..

S3每个对象最多支持5 TB,只需分多个部分上传,请参阅:aws.amazon.com/s3/faqs/#How_much_data_can_I_store
Laurence Rowe

@LaurenceRowe:这实际上是在报价中暗示的,(可能大于5GB),但是感谢您指出此后可能引起混淆的措词-我已尝试结合您的评论来澄清这一点。
斯特芬·欧宝

我有一个问题,斯特芬,我通常在S3上创建具有位置的HIVE外部表,并且效果很好。该文件是BSON,并且使用mongo-hadoop连接器。但是大多数时候我的BSON文件超过5 GB,例如18GB。如何用该数量的文件创建外部表?我已经将文件存储在存储桶中,并且不介意它是否仅由hadoop锁定,但是它说如果选择S3阻止文件系统,则不应使用包含文件的现有存储桶。如何在S3上从大于5GB的文件创建外部表?谢谢史蒂芬。
Maziyar 2013年


9

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

Hadoop 0.10.0(HADOOP-574)中引入了第一个由S3支持的Hadoop文件系统。它被称为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块文件系统。Qubole和Amazon EMR等各种Hadoop即服务提供程序甚至将s3://和s3n:// URI都映射到S3本机文件系统以确保这一点。

因此,请始终使用本机文件系统。没有更多的5Gb限制。有时,您可能需要键入s3://而不是s3n://,但是只要确保您创建的任何文件在浏览器的存储区浏览器中可见即可。

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

以前,Amazon EMR将S3本机文件系统与URI方案s3n一起使用。尽管这仍然可行,但我们建议您使用s3 URI方案以获得最佳性能,安全性和可靠性。

它还表示您可以使用s3bfs://来访问旧的块文件系统(以前称为)s3://


1
更新:考虑s3a://改为使用。
谢尔盖·奥尔尚斯基
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.