gpt4 book ai didi

image - 将图像存储在 HBASE 中以供处理和快速访问

转载 作者:可可西里 更新时间:2023-11-01 14:19:12 24 4
gpt4 key购买 nike

我有大量的图片文件需要在HDFS上存储和处理

让我们假设两种情况:

  1. 图片小于 5MB
  2. 图片大小从 50KB 到 20MB

我想用图像做 4 件事:

  1. 我需要对每个图像独立应用一些函数 fnc()。
  2. 我需要不时地(1000 次/天)从 HDFS 中提取特定图像并将其显示在网站上。 这些是用户对特定图像的查询,因此延迟应该是几秒钟
  3. 每年必须删除一组图像。
  4. 系统将添加新图片(1000 张新图片/天)

IMO 应考虑的解决方案设计:

  1. 小文件问题:
  2. MR 处理
  3. 快速访问文件
  4. 快速写入新文件不是什么大问题,因为图像不会立即使用。延迟几分钟或几小时都可以。

我的第一个想法是聚合图像以解决小文件问题,这满足了 1 和 2。但我只剩下快速随机访问图像问题和添加新图像的问题。我不确定我该如何处理这件事

我查看了 sequenceFiles、HAR、mapFiles、combineFileInputFormat、Avro,但无法找到 (3) 和 (4) 的解决方案。因为我必须负责索引 block 的内容,搜索和删除或添加新文件可能会变得棘手。

另一种方法是使用 HBase 或 HCatalog 来存储图像,这将解决 (1) (2) (3) 和 (4),但代价是什么?我知道在数据库中存储二进制 BLOBS 不是很有效,特别是随着图像数量的增加,但我认为 HBase 或 HCatalog 处理这个问题可能有点不同。

感谢大家的帮助!

编辑:

我刚刚在 HBase 上发现这个线程用于提供图像,显然 Yfrog 和 ImageShack 有数十亿条图像记录,这里是 link这是一本好书。尽管如果有人知道任何基准会很棒。

最佳答案

恕我直言,直接在 hbase 中存储 ~10MB 大小的图像没有问题。更大的文件可以通过 hbase 中的指针存储在 HDFS 本​​身中。即使您有数百万个此类文件,这也可以加快访问速度。 MR 与 hbase 和 HDFS 完美配合。

关于image - 将图像存储在 HBASE 中以供处理和快速访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17505788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com