我们正面临HBase地区的热点问题。所有写入都被重定向到一个区域服务器,因此某些映射需要花费大量时间。我希望使用HBase shell手动溢出该区域,但可以找到任何示例。
我看到语法溢出' regionname',溢出密钥。
但由于行密钥是随机序列号,我无法找到溢出的密钥。
什么是最佳优化方式来扩散区域服务器。
答案 0 :(得分:0)
您可以使用salting,这意味着向您的rowkeys添加随机前缀值,这样所有rowkeys都不是按顺序排列。
示例:
按顺序排列的rowkey
2016_1201
2016_1202
2016_1204
2016_1204
腌制后
a_2016_1201
b_2016_1202
c_2016_1204
d_2016_1204
答案 1 :(得分:0)
Hashing / randomPrefix + salting通常建议用于在Hbase中书写。如果您的密钥已经被随机生成并且您知道前缀范围(如果是Hex,则为Ex- 000到FFF),那么您可以使用777作为splitKey将单个区域划分为2.通常建议预先拆分您的hbase表根据预期的负载大小,以避免热点。