我知道的https://wiki.apache.org/hadoop/AmazonS3存在和下面的话:技术上s3n,s3a和s3有什么区别?
S3本地文件系统(URI方案:S3N)读取和写入S3常规文件本地文件系统。这个文件系统的优点是你可以访问使用其他工具编写的S3上的文件。相反,其他工具可以访问使用Hadoop编写的文件。缺点是S3强加的5GB文件大小限制。
S3A(URI方案:S3A)的后继S3母语,S3N FS,在S3a中:系统采用Amazon的库与S3交互。这允许S3a支持更大的文件(不超过5GB限制),更高的性能操作等等。该文件系统旨在为/后继S3本地替代:从S3N访问的所有对象:// URL的链接也应该从S3A存取只更换URL模式。
S3块的文件系统(URI方案:S3)基于块的文件系统通过S3支持。文件存储为块,就像它们在HDFS中一样。这允许有效实现重命名。这个文件系统需要你奉献一个水桶的文件系统 - 你不应该使用现有的桶包含文件,或写其他文件到同一个桶。该文件系统存储的文件可能大于5GB,但不能与其他S3工具互操作。
为什么在URI的一封信变化可能会做出这样的区别?例如
val data = sc.textFile("s3n://bucket-name/key")
到
val data = sc.textFile("s3a://bucket-name/key")
有什么区别技术这种变化背后?有什么好的文章可以阅读吗?
来自Amazon的支持文章似乎仍然是最新的,但我现在可以使用's3a'方案从EMR作业写入S3。应该修改答案是可能的。 – mlg
@mig尽管s3a可能有效,并且它确实在我的经验中有效,但它在技术上并没有得到AWS的支持。所以,我认为你会自己承担风险使用它。 – jarmod