【发布时间】:2015-07-07 15:54:07
【问题描述】:
我有 Cloudera CDH 5.3.0
我在 HDFS 中有一个目录,其中包含几 GB 的图像文件。
这些文件有多种类型(jpg、png、gif)。
对于每个文件 picturename.jpg,我想要在 HBase 中以 picturename 作为行键的一行,以及一个包含图像数据的列。
有人可以解释我将如何完成这样的事情吗?
【问题讨论】:
-
为什么需要这些文件在 HBase 中? HBase 不能很好地处理大单元(单元值甚至有默认的 10Mb 大小限制),在这种情况下,从 HDFS 提供文件可能比使用 HBase 更快。
-
@kostya 使用 Hbase 减轻了 NameNode 的压力,尤其是当您有大量小文件时。同样,有效性取决于用例。我猜很少有人使用 Hbase 来提供图像(yfrog),但他们已经针对他们的情况进行了很好的调整。 Hbase 有一些发展可以解决限制 (MOB)。 blog.cloudera.com/blog/2015/06/…
-
@Shyam,这很好。一种可能仍然有效的解决方案(取决于用例)是将多个图像放入单个 HAR 文件中。我同意这一切都取决于用例,我只是想提出最简单的方法来解决仍然可能有效的问题;)
-
@kostya:Ryan 没有提到 Image 的大小大于 10 MB。
-
@AnilGupta,他没有另外提及。显然,这个问题没有包含足够的信息来推荐最佳解决方案。我只是想提供帮助,并警告 Ryan HBase 存在潜在问题。
标签: hadoop hbase cloudera-cdh