我该如何最好地存储这些文件?

时间:2013-06-30 16:18:34

标签: hadoop nosql cassandra hbase

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

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

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

2 个答案:

答案 0 :(得分:2)

首先,我建议你看看HBase。 Imageshack的人正在使用HBase存储他们的图像内容,他们能够成功地完成它。请参阅此thread

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

HTH

答案 1 :(得分:0)

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

最后,这取决于你要对图像做些什么。您应该更新您的问题并解释一下您的用例。如果您只是存储图片,可能根本不需要数据库,但如果图像将每秒数百次发送到互联网,则完全需要其他内容。

相关问题