在S3上阻止文件系统

时间:2015-08-17 15:45:38

标签: amazon-s3

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

我们创建了一些ORC文件,我们想要在它们存储在S3上时进行查询。 我们注意到S3本机Filesystem S3n并没有真正解决这种问题。我不确定问题是什么 - 但我的猜测是,读者无法跳转到文件中的特定字节,因此他必须在查询之前加载整个文件。 所以我们尝试将文件存储在S3(uri s3://)上,这是一个块文件系统,就像s3支持的HDFS一样,效果很好。

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

  
      
  • Amazon S3阻止文件系统(URI路径:s3bfs://)
      Amazon S3块文件系统是旧文件存储系统。我们强烈反对使用此系统。      
        

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

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

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

1 个答案:

答案 0 :(得分:0)

Amazon S3是一个对象存储系统。不建议" mount" 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中。

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

至于选择哪个...通常,应用程序喜欢使用本地文件系统上的文件,因此将文件从S3复制到本地设备。但是,如果您的应用程序可以直接与S3通信,那么移动部件的数量会减少,而且#34;