我有大量的图像文件需要在HDFS上存储和处理
我们假设有两种情况:
我想用图像做4件事:
解决方案设计IMO应考虑:
我的第一个想法是聚合图像以处理小文件问题,满足1和2. 但我留下了快速随机访问图像问题和添加新图像.我不知道如何处理这件事.
我查看了sequenceFiles,HAR,mapFiles,combineFileInputFormat,Avro,但无法找到(3)和(4)的解决方案.因为我必须负责索引块的内容,搜索和删除或添加新文件可能会变得棘手.
另一种方法是使用HBase或HCatalog来存储图像,这将照顾(1)(2)(3)和(4),但代价是什么?我知道在数据库中存储二进制BLOBS并不是非常有效,特别是随着图像数量的增加,但我认为可能HBase或HCatalog处理这个有点不同.
感谢您的帮助!
编辑:
我刚刚在HBase上发现这个线程用于提供图像,显然Yfrog和ImageShack有数十亿条带有图像的记录,这是一个很好的阅读链接.虽然如果有人知道任何基准会很棒.