2

我有一组图像文件,它们通常很小,在 5k 到 100k 之间。它们可以是任何大小,超过 50mb,但这非常罕见。当这些图像被放入系统时,它们永远不会被修改。这些图像总共大约有 50 TB。它们目前在 Oracle 中被分块并存储在 BLOB 中,但我们想要改变这一点,因为它需要特殊的软件来提取它们。

这些图像有时在大约 10 台服务器中以每秒超过 100 个请求的速度访问。

我正在考虑 Hadoop 或 Cassandra,但我真的不知道哪个最好或如何最好地索引它们。

4

2 回答 2

2

首先,我建议您也看看 HBase。Imageshack的人们正在使用 HBase 来存储他们的图像内容,并且他们能够成功地做到这一点。看到这个线程

回到您最初的问题,您可以将不是很大(~10MB)的图像存储到 Cassandra 中。并且可以使用 Cassandra(或 HBase)中的指针将大文件转储到 HDFS 中。

高温高压

于 2013-06-30T18:55:20.230 回答
0

如果您要将它们提供给 Internet,我建议您将它们放在 Amazon S3 上。它将为您节省大量操作开销,存储足够便宜,如果需要,您可以在其上放置一个 CDN (CloudFront)。只需为每个图像使用一个随机 ID,将其用作文件名,然后将该文件名保存在您的数据库中(Cassandra 可能是一个不错的选择)。

最后,这取决于您要对图像做什么。您应该更新您的问题并更多地解释您的用例。如果你只存储图片,也许你根本不需要数据库,但如果图片每秒被提供数百次,你就完全需要别的东西了。

于 2013-07-01T06:13:25.383 回答