这是一个写的热点问题:
1.热点写问题表现在大量的写请求集中在一个region上,造成单点压力大,降低写效率.
2.解决方法.创建表的指定多个region,默认情况下一个表一个region,刚开始写的时候就会造成所有的写请求都写到一个region上面,创建多个region的话,写请求就会分流到多个region上面去。提高写的效率
3.第二个方法,对rowkey进行散列,既然我们要把多个请求写分到不同的region上,我们需要对key进行md5,进行散列,这样就可以把写请求分到不同的region上面去。大幅提高效率。
4.上面两个方法要一起使用,如果只分多个region而不进行散列的话,rowkey递增的话,还是会造成多个写集中到一个region上
建表语句如下(这是mob 表):
create 't_file_con',{NAME=>'urlInfo',NAME => 'con', IS_MOB => true, MOB_
THRESHOLD => 102400, MOB_COMPACT_PARTITION_POLICY => 'weekly'},{SPLITS
=>['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']}
正常表如下:
hbase(main):create'UrlPic',{NAME=>'urlInfo',‘pictures’,VERSIONS=>1,BLOCKC
ACHE=>true,BLOOMFILTER=>'ROW',COMPRESSION=>'SNAPPY',TTL=>'259200'},{SPLITS
=>['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']} ,{NAME =>
'con2'}
对rowkey进行hash 和 散列。