【发布时间】:2016-03-16 00:16:57
【问题描述】:
我们正面临 HBase 区域热点。所有写入都被重定向到一个区域服务器,因此某些映射需要大量时间。我想使用 HBase shell 手动溢出该区域,但可以找到任何示例。
我看到语法溢出'regionname',溢出键。
但我无法找到溢出的密钥,因为行密钥是随机序列号。
溢出区域服务器的最佳优化方法是什么。
【问题讨论】:
标签: hbase
我们正面临 HBase 区域热点。所有写入都被重定向到一个区域服务器,因此某些映射需要大量时间。我想使用 HBase shell 手动溢出该区域,但可以找到任何示例。
我看到语法溢出'regionname',溢出键。
但我无法找到溢出的密钥,因为行密钥是随机序列号。
溢出区域服务器的最佳优化方法是什么。
【问题讨论】:
标签: hbase
您可以进行加盐,这意味着向您的行键添加随机前缀值,这样所有行键都不是按顺序排列的。
示例:
按顺序排列的rowkey
2016_1201
2016_1202
2016_1204
2016_1204
腌制后
a_2016_1201
b_2016_1202
c_2016_1204
d_2016_1204
【讨论】:
Hashing/randomPrefix + salting 一般推荐用Hbase写。如果您的密钥已经随机生成并且您知道前缀范围(在 Hex 的情况下为 Ex-000 到 FFF),那么您可以使用 777 作为 splitKey 将单个区域分为 2。通常建议预先拆分您的 hbase 表根据预期的负载大小来避免热点。
【讨论】: