首页 文章

HBase多列系列性能

提问于
浏览
1

我有2个HBase表 - 一个有一个列族,另一个有4个列族 . 两个表都由相同的rowkey键控,并且列族每个都有一个列限定符,json字符串作为值(每个json有效负载大小约为10-20K) . 所有列族都使用快速差异编码和gzip压缩 .

在向每个表加载大约60MM的行之后,对第二个表中任何单个列族的扫描测试需要4倍的时间来扫描第一个表中的单个列族 . 请注意,第二个表上的扫描使用addFamily将扫描限制为仅一个列族,并且两个测试都精确扫描1MM行 - 因此在两种情况下净工作负载(以及因此性能预期)应该相同 . 但是,测试显示第二个表与第一个表中任何列族的4倍时间 . 即使在两个表上运行主要压缩之后,性能也没有太大变化 .

虽然HBase doc和其他技术论坛建议每个表不使用超过1个列族,但到目前为止我没有读过任何内容表明扫描性能会根据列族数线性降低 . 有没有其他人经历过这个,有一个简单的解释吗?

需要注意的是,第二个表有4个列族的原因是,即使我现在一次只扫描一个列族,但是需要在给定一组行键的情况下从该表扫描多个列族 .

感谢您对性能问题的任何见解 .

1 回答

  • 0

    如果我的情况正确的话,那是正常的行为 . 由于每个列族代表RegionServer上的单独商店,因此访问多个商店需要更多时间 .

    您可以将扫描限制为特定列族,在扫描对象上使用 addFamily .

相关问题