【发布时间】:2016-01-26 03:50:17
【问题描述】:
我知道https://wiki.apache.org/hadoop/AmazonS3 的存在以及以下字样:
S3 本地文件系统(URI 方案:s3n)用于在 S3 上读取和写入常规文件的本地文件系统。此文件系统的优点是您可以访问 S3 上使用其他工具编写的文件。相反,其他工具可以访问使用 Hadoop 编写的文件。缺点是 S3 对文件大小施加了 5GB 的限制。
S3A(URI 方案:s3a)S3 Native 的继承者,s3n fs,S3a:系统使用 Amazon 的库与 S3 交互。这允许 S3a 支持更大的文件(不再有 5GB 限制)、更高性能的操作等等。该文件系统旨在成为 S3 Native 的替代品/继任者:从 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")
这种变化背后的技术差异是什么?有什么好的文章可以读到吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sdk