【问题标题】:Big data zip on amazon S3 files亚马逊 S3 文件上的大数据压缩包
【发布时间】:2014-08-04 05:31:33
【问题描述】:

我在亚马逊 S3 上以对象的形式存储了大量数据。

就像我有用户在亚马逊 S3 上存储了 200+ GB 的照片(大约 100000+ 个对象)。每个对象是一张照片,每个对象大小平均为 5MB。

现在我想给用户一个下载数据的链接。

目前我在做什么。

  1. 使用S3cmd 我将所有对象从S3 复制到EC2
  2. 然后使用 ZIP 命令TAR 命令 创建一个 邮编。
  3. Zip 过程完成后,我将 zip 文件移回 S3。
  4. 然后创建一个单独的链接,我将其作为电子邮件发送给用户。

但是这个过程需要很长很长的时间,大部分时间它给出了内存不足的问题,存储问题并且这个过程很慢。

我需要知道

  1. 有什么方法可以延长这个处理时间。
  2. 是否有任何第三方服务/工具可以让我创建快速 zip 我的文件并发送给用户。
  3. 或任何其他 3 方解决方案,我已准备好为此付费。

【问题讨论】:

  • 你是怎么解决这个问题的?

标签: amazon-web-services amazon-ec2 amazon-s3 cloud s3cmd


【解决方案1】:

您在高层遵循的方向是正确的。但是,没有任何直接的答案可以一次性解决您的问题。

这些是你可以尝试做的事情

  1. 要求您的用户创建一个 AWS 账户(或创建一个 IAM 用户)并提供对该用户/账户的只读访问权限
  2. 在上传到 S3 的过程中,您可以将照片分组为几个 50 或 100 的捆绑包,然后将其压缩然后放入 S3(来自 EC2,即在创建媒体本身期间)
  3. 使用 - Amazon Import / Export 从 S3 导出到外部媒体

【讨论】:

  • 谢谢您的回答,EMR(Elastic Map Reducer)或Redshift或glacier在这方面能有所帮助吗?
  • 这里的问题是关于大数据的交付,而 EMR、Redshift 是存储或处理的候选者;所以它们对于用例来说不是很好的选择。
【解决方案2】:

S3DistCP 是在这种情况下可以提供很大帮助的工具。 http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html

S3DistCP 可以使用 EMR 集群而不是单个实例从 S3 复制到 S3,并动态压缩对象。

但是,在“大数据”处理中,如果您提前主动创建捆绑包或按需异步启动流程并在完成时通过下载链接通知用户,用户可能会获得更好的体验。

【讨论】:

    【解决方案3】:

    尝试使用 EMR(Elastic Map Reducer 和 S3distCp),这可能对您所需的情况有所帮助,对于 EMR,您必须创建一个集群。和运行你的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 2018-01-22
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多