参考opentsdb_schema的数据表设计,若想达到好的性能需要对opentsdb的hbase数据表进行预分区,每个预分区对应一个hbase一个region server,一个region server下挂载一个或多个region,可使用hexkeypoint预分区方法,预分区个数和opentsdb salt bucket一致,可以达到很好的负载均衡效果,若需要20个预分区,分区的rowkey范围如下:
0000000000000000 0100000000000000 0200000000000000 0300000000000000 0400000000000000 0500000000000000 0600000000000000 0700000000000000 0800000000000000 0900000000000000 0A00000000000000 0B00000000000000 0C00000000000000 0D00000000000000 0E00000000000000 0F00000000000000 1000000000000000 1100000000000000 1200000000000000 1300000000000000 1400000000000000
上述分区方法经过实际测试,后端region server的负载是非常均衡的,但是salt bucket number需要根据各自的业务来设定了,我们的业务每秒写入opentsdb 80w行,salt bucket number=20,仅供参考。
网友评论