从技术上讲,s3n,s3a和s3有什么区别?

我知道存在https://wiki.apache.org/hadoop/AmazonS3和以下字词:


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


S3A(URI方案:s3a)S3a:系统是S3本机s3n fs的后继产品,它使用Amazon的库与S3进行交互。这使S3a支持更大的文件(没有更多的5GB限制),更高性能的操作等等。该文件系统旨在替代S3本机/替代S3本机:从s3n:// URL访问的所有对象也应该仅通过替换URL架构就可以从s3a访问。


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


为什么URI上的字母更改会产生这种变化?例如


val data = sc.textFile("s3n://bucket-name/key")


val data = sc.textFile("s3a://bucket-name/key")

此更改的技术差异是什么?有什么好的文章可以阅读吗?


湖上湖
浏览 1245回答 2
2回答

侃侃无极

URI方案上的字母更改有很大的不同,因为它导致使用不同的软件来连接到S3。有点像http和https之间的区别-只是一个字母的更改,但它会触发行为上的很大区别。s3和s3n / s3a之间的区别在于s3是Amazon S3之上的基于块的覆盖,而s3n / s3a不是(它们是基于对象的)。s3n和s3a之间的区别在于s3n支持最大5GB的对象,而s3a支持最大5TB的对象并具有更高的性能(这都是因为它使用分段上传)。s3a是s3n的后继者。如果您在这里是因为想要了解应该与Amazon EMR一起使用哪个S3文件系统,请从Amazon 阅读本文(仅在Wayback机器上可用)。网络是:使用s3://,因为s3://和s3n://在EMR的上下文中在功能上是可互换的,而s3a://与EMR不兼容。
打开App,查看更多内容
随时随地看视频慕课网APP