Hbase 中单行超过 hbase.hregion.max.filesize 时的性能问题

Performance Issue when Single row in Hbase exceeds hbase.hregion.max.filesize

在Hbase中,我配置hbase.hregion.max.filesize为10GB。如果单行超过 10GB 大小,那么该行将不会分成 2 个区域,因为 Hbase 拆分是基于行键完成的

例如,如果我有一行有 1000 列,并且每列在 25MB 到 40MB 之间变化。所以有机会超过定义的区域大小。如果是这种情况,在单独使用 rowkey 或 row-key 与列限定符读取数据时将如何影响性能?

首先,Hbase 不是用于在一行中存储那么多 10GB 的大数据(这是非常假设的)。

我希望你没有在一行中保存 10GB(只是想保存那个)

这会对性能产生不利影响。您考虑其他方式,例如将这么多数据以分区结构存储在 hdfs 中。

一般来说,这些是tips for generally applicable batch clients like Mapreduce Hbase jobs

Scan scan = new Scan();
scan.setCaching(500); //1 is the default in Scan, which will be bad for MapReduce jobs
scan.setCacheBlocks(false);  // don't set to true for MR jobs

可以看看Performance