最佳答案
我知道 https://wiki.apache.org/hadoop/AmazonS3的存在,以及下面的话:
S3本机文件系统(URI 方案: s3n)在 S3上读写常规文件的本机文件系统。这种文件系统的优点是您可以访问使用其他工具编写的 S3上的文件。相反,其他工具可以访问使用 Hadoop 编写的文件。缺点是 S3对文件大小的5GB 限制。
S3A (URI scheme: S3A) S3A: system 是 S3Natives3nfs 的继承者,它使用 Amazon 的库与 S3进行交互。这允许 S3a 支持更大的文件(不超过5GB 的限制)、更高的性能操作等等。该文件系统旨在替代/继承 S3本机: 所有可从 s3n://URL 访问的对象也应该只需替换 URL 模式即可从 s3a 访问。
S3 Block FileSystem (URI scheme: S3) S3支持的基于块的文件系统。文件以块的形式存储,就像在 HDFS 中一样。这允许有效地实现重命名。这个文件系统要求您为文件系统指定一个存储桶——您不应该使用包含文件的现有存储桶,或者将其他文件写入同一个存储桶。这个文件系统存储的文件可以大于5GB,但是它们不能与其他 S3工具互操作。
例如,为什么 URI 上的字母更改可以产生如此大的差异
val data = sc.textFile("s3n://bucket-name/key")
到
val data = sc.textFile("s3a://bucket-name/key")
这种变化背后的技术差异是什么? 有什么好的文章我可以阅读这方面的?