hbase中单调递增的rowkey造成的影响

自己的数据导入由于是md5排序后的数据,所以导入的时候遇到的一个问题就是:在一个集群中,一个导入数据的进程一动不动,所以的client都在等待一个region(就是一个节点),过了一会后,变成了下一个region


查到了一些资料,不过这种做饭还不是很适合我,所以我只能考虑用另外的方法来处理

用多线程同时读取统一个文件的不同位置,这样读入的rowkye就分散了。多线程的数据与自己regions的数目相同即可。

另外要避免这种问题就是在创建表的时候预先分布regions,不过似乎如果建好了表就不能split regions了。谁有这方面的方法不吝赐教。


http://www.yankay.com/wp-content/hbase/book.html#timeseries


单调递增Row Keys/时序数据

在Tom White的Hadoop: The Definitive Guide一书中,有一个章节描述了一个值得注意的问题:在一个集群中,一个导入数据的进程一动不动,所以的client都在等待一个region(就是一个节点),过了一会后,变成了下一个region...如果使用了单调递增或者时序的key就会造成这样的问题。详情可以参见IKai画的漫画monotonically increasing values are bad。使用了顺序的key会将本没有顺序的数据变得有顺序,把负载压在一台机器上。所以要尽量避免时间戳或者(e.g. 1, 2, 3)这样的key。

如果你需要导入时间顺序的文件(如log)到Hbase中,可以学习OpenTSDB的做法。


他有一个页面来描述他的schema.OpenTSDB的Key的格式是[metric_type][event_timestamp],乍一看,似乎违背了不将timestamp做key的建议,但是他并没有将timestamp作为key的一个关键位置,有成百上千的metric_type就足够将压力分散到各个region了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值