OpenTSDB PreSplit Table
2016-01-05 17:51
369 查看
Reference Issure
Ref2
如果metric热度相差不大,即没有某些metric的time series特别多,比如百万级别,而某些metric的time series特别少,比如千级别。
pre split 设计可以如下:
如果metric热度相差很大,那么上述的设计可能就不太合理,因为有可能非常热的几个metric分在同一个region. 这种情况下的解决办法比较tricky: 先提取热度较大的metric, 手动预先为其分配UID, 然后每个或者两个可以作为一个region的start key, end key.
比如:
切分脚本(jRuby):
使用方法: \x00\x00\x01 换成第一个metric的UID, \x00\x03\x48换成最后一个metric的UID。 执行: ./create.rb tsdb 256 这样会预切分256个region.
这样会预切分256个region.
总结:由于预先评估罗列那些metric的热度较高比较困难,目前就采用第一种方式:确定metric的个数,然后根据startkey, endkey的范围平均切分region。如果后期发现某些region的访问热度特别高,然后在针对这个region做手动切分。
Ref2
如果metric热度相差不大,即没有某些metric的time series特别多,比如百万级别,而某些metric的time series特别少,比如千级别。
pre split 设计可以如下:
start key: \x00\x00\x01 end key: \x00\x08\x00 // 假设有2048个metrics 按照这个范围平均切分 256 个
如果metric热度相差很大,那么上述的设计可能就不太合理,因为有可能非常热的几个metric分在同一个region. 这种情况下的解决办法比较tricky: 先提取热度较大的metric, 手动预先为其分配UID, 然后每个或者两个可以作为一个region的start key, end key.
比如:
metric1, metric2, metric2热度较大, metric3, metric4 .....热度一般 1. 预先分配UID(参见具体的工具) metric1 -> \x00\x00\x01; metric2 -> \x00\x00\x02; metric3 -> \x00\x00\x03 metric3, metric4......可以系统自动分配UID. pre split如下: 前三个metric各自放到一个region, 即: region1 startkey: \x00\x00\x01 endkey: \x00\x00\x01 region2 startkey: \x00\x00\x02 endkey: \x00\x00\x03 region3 startkey: \x00\x00\x03 endkey: \x00\x00\x04 剩下的就可以按照1的办法搞定。
切分脚本(jRuby):
#!/usr/bin/hbase org.jruby.Main # usage: ./create_table.rb tsdb 255 include Java import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.HTableDescriptor import org.apache.hadoop.hbase.client.HBaseAdmin import org.apache.hadoop.hbase.HColumnDescriptor tablename = ARGV[0] regions = ARGV[1].to_i hcd = HColumnDescriptor.new('t') #hcd.COMPRESSION="COMPRESSION" #hcd.BLOOMFILTER="BLOOMFILTER" htd = HTableDescriptor.new(tablename) htd.addFamily(hcd) HBaseAdmin.new(HBaseConfiguration.new).createTable( htd, "\x00\x00\x01".to_java_bytes, "\x00\x03\x48".to_java_bytes, regions)
使用方法: \x00\x00\x01 换成第一个metric的UID, \x00\x03\x48换成最后一个metric的UID。 执行: ./create.rb tsdb 256 这样会预切分256个region.
这样会预切分256个region.
总结:由于预先评估罗列那些metric的热度较高比较困难,目前就采用第一种方式:确定metric的个数,然后根据startkey, endkey的范围平均切分region。如果后期发现某些region的访问热度特别高,然后在针对这个region做手动切分。
相关文章推荐
- Linux命令大总结
- apache开源项目--dbutils
- USB驱动
- CentOS7配置免密码登陆
- OpenTSDB 存储容量估算 以及 建表方式
- apache开源项目--mina
- apache开源项目--OpenMeetings
- OpenTSDB TroubleShooting
- apache开源项目--lume
- 网站服务器、VPS和虚拟主机的联系与区别
- OpenTSDB 使用时 推荐配置
- apache开源项目--Sirona
- OMSA在Linux服务器上安装部署
- Linux命令之uniq
- OpenTsdb 写入数据
- apache开源项目--Derby
- Linux源代码分析工具链
- OpenTsdb 核心设计
- linux学习笔记----1
- Centos7安装haproxy