【问题标题】:Using Glacier as back end for web crawling使用 Glacier 作为 Web 抓取的后端
【发布时间】:2013-04-28 04:58:27
【问题描述】:

我将在几个月内从 EC2 抓取数百万个 URL,我正在考虑应该将这些数据存储在哪里。我的最终目标是分析它,但分析可能不会立即进行(即使我现在出于其他原因想抓取它),我可能希望最终将数据副本传输出去以存储在我拥有的本地设备上.我估计数据将在 5TB 左右。

我的问题:我正在考虑为此使用 Glacier,我的想法是我将运行一个多线程爬虫,将爬取的页面存储在本地(在 EB 上),然后使用一个单独的线程来组合、压缩和传送该数据到冰川。我知道 Glacier 上的传输速度不一定很好,但由于这个过程没有在线元素,这似乎是可行的(尤其是因为我总是可以增加本地 EBS 卷的大小,以防我爬得比我更快存储到冰川)。

我的方法是否存在缺陷,或者任何人都可以提出一种更具成本效益、更可靠的方法来做到这一点?

谢谢!

【问题讨论】:

  • Glacier 从根本上说是一种长期归档工具,着眼于法规遵从性(例如,“您必须将 XYZ 数据的归档保存至少 N 年”)。从中检索数据是一个缓慢、复杂且有时代价高昂的过程——它可能不是适合这项工作的工具,除非您存储了大量不太可能检索的数据。

标签: amazon-s3 amazon-ec2 amazon-ebs amazon-glacier


【解决方案1】:

Redshift 似乎比 Glacier 更相关。 Glacier 是关于冻结/解冻的,您必须在进行任何分析之前移动数据。

Redshift 更多的是关于将数据添加到大型、廉价的数据仓库并在其上运行查询。

另一种选择是将数据存储在 EBS 中并保留在那里。完成爬网后,拍摄快照以将卷推送到 S3 并停用卷和 EC2 实例。然后,当您准备好进行分析时,只需从快照创建一个卷。

这种方法的好处是它是所有文件访问(没有正式的数据存储),这对您来说可能更容易。

就个人而言,我可能会将数据推送到 Redshift。 :-)

-- 克里斯

【讨论】:

  • 感谢您的周到。不确定 Redshift 是否适合我(我通常不需要 DW),但你的帖子让我想到了其他一些选择,我感谢你关于 Glacier 的 cmets。
【解决方案2】:

如果您的分析不会立即进行,那么您可以采用以下两种方法之一

方法 1) Amazon EC2 爬虫 -> 存储在 EBS 磁盘中 - 经常将它们移动到 Amazon S3-> 定期存档到冰川。您可以将最近 X 天的数据存储在 Amazon S3 中,并将其用于临时处理。

方法 2) Amazon EC2 爬虫 -> 存储在 EBS 磁盘中 - 经常将它们移动到 Amazon Glacier。需要时检索并在 EMR 或其他处理工具上进行处理

如果需要频繁分析:

方法 3) Amazon EC2 爬虫 -> 存储在 EBS 磁盘中 - 经常将它们移动到 Amazon S3-> 通过 EMR 或其他工具进行分析,并将处理后的结果存储在 S3/DB/MPP 中并将原始文件移动到冰川

方法 4)如果您的数据是结构化的,那么 Amazon EC2 爬虫 -> 存储在 EBS 磁盘中并将它们移动到 Amazon RedShift 并将原始文件移动到冰川

其他提示: 如果您可以再次(从源)检索数据,那么您可以为爬虫使用临时磁盘而不是 EBS

亚马逊推出了数据管道服务,看看它是否符合你对数据移动的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多