HBase学习笔记——避免热点Region的一些技巧
HBase row key设计得不好、频度各异的查询类型,会导致热门数据集中坐落在某几个Region上,造成Region热点,集群负载不均衡。 能采取哪些解决方案,首先要明确访问模式,然后针对性优化: 牺牲有序性,散列化row key。 如果不需要数据的有序性: 在row key首部增加原始row key的hash code,使数据均匀散列。 或者,将原始row key的MD5作为实际的row key。 对整个row key散列牺牲了有序性和根据前缀匹配进行范围扫描的能力。 为此,我们也可以对row key的各个部分,分别求取MD5,再拼接起来,作为新的row key。这样虽然仍不支持有序查询,但是支持根据前缀匹配进行范围扫描——根据row key前缀的MD5,范围扫描匹配的行,返回的是无序的数据。 不同访问模式的数据,不要混杂在一张表里。 一个店铺有哪些商品(row key是store id + product id) 和 一种商品有哪些店铺在出售(row key是product id + store id),这两种行,不要放在一张表里。 因为业务应用的以上两种查询,其执行频率会有很...

