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