【问题标题】:block file system on S3S3 上的块文件系统
【发布时间】:2015-11-10 07:59:54
【问题描述】:

我有点困惑,希望有人能帮助我。

我们创建了一些我们想要在存储在 S3 上时查询的 ORC 文件。 我们注意到 S3 原生文件系统 S3n 并不能真正适用于这种方式。我不太确定问题出在哪里——但我的猜测是,读者无法跳转到文件中的特定字节,因此他必须先加载整个文件才能查询它。 所以我们尝试将文件存储在 S3 (uri s3://) 上,这是一个块文件系统,就像由 s3 支持的 HDFS 一样,效果很好。

但在阅读了source 关于 Amazon EMR 的内容后,我有点担心

  • Amazon S3 块文件系统(URI 路径:s3bfs://)
    Amazon S3 块文件系统是一种旧式文件存储系统。我们强烈反对使用这个系统。

    重要 我们建议您不要使用此文件系统,因为它会触发可能导致集群失败的竞争条件。但是,旧版应用程序可能需要它。

  • EMRFS(URI 路径:s3://) EMRFS 是 HDFS 的一种实现,用于将常规文件从 Amazon EMR 直接读取和写入 Amazon S3。

我没有使用 EMR - 我通过启动 EC2 集群来创建我的文件,然后使用 s3 作为冷存储 - 但我现在有点困惑,不确定当我将文件存储在 s3 上时使用的是哪个文件系统URI 方案 s3:// - 我使用 EMRFS 还是使用已弃用的 s3bfs 文件系统?

【问题讨论】:

  • 如果您可以在浏览器的存储桶资源管理器中看到您的文件,那么您正在使用 EMRFS(或者您只是将文件作为键值存储保存到 S3)。如果您可以看到诸如block_-23874982374892 之类的文件,那么您正在使用块文件系统。 Amazon S3 不是文件系统,但可以在其上实现不同的文件系统。

标签: amazon-s3


【解决方案1】:

Amazon S3 是一个对象存储系统。不建议将 S3“挂载”为文件系统。 Amazon Elastic Block Store (EBS) 是一种块存储系统,在 Amazon EC2 实例上显示为卷。

从 Amazon Elastic MapReduce (EMR) 中使用时,Hadoop 具有可轻松使用 Amazon S3 的扩展。但是,如果您不使用 EMR,则无需使用 EMRFS(仅在 EMR 上可用),也不应使用 S3 作为块存储系统。

从 EC2 使用 S3 的最简单方法是通过 AWS Command-Line Interface (CLI)。您可以使用 aws s3 cp 命令将文件复制到 S3 或从 S3 复制文件。还有一个sync 命令可以轻松将数据同步到 S3 或从 S3 同步数据。

您还可以通过 SDK 以编程方式连接到 Amazon S3,以便您的应用可以直接向/从 S3 传输文件。

至于选择哪个... 通常,应用程序喜欢使用本地文件系统上的文件,因此将文件从 S3 复制到本地设备。但是,如果您的应用可以直接与 S3 通信,那么“活动部件”就会更少。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2019-07-23
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多