您的位置:首页 > 其它

Hbase优化

2015-08-25 19:20 190 查看
1,预分区。因为第一次建表的时候会自动创建一个region分区.如果再倒入数据的话,因为一开始没有数据,不会split切分,这样会对单个region server造成比较大的io开销,所以需要预分区。预分区可以根据热点范围的rowkey来制定分区策略。

2,通过rowkey检索数据的时候,需要制定column,这个比较好理解,和关系型数据库的sql优化一样,select * from table 需要制定查询的column.

3,rowkey长度不要太长,太长会浪费空间。

4,现在HBase并不能很好的处理两个或者三个以上的列族,所以尽量让你的列族数量少一些。目前,flush和compaction操作是针对一个Region。所以当一个列族操作大量数据的时候会引发一个flush。那些不相关的列族也有进行flush操作,尽管他们没有操作多少数据。Compaction操作现在是根据一个列族下的全部文件的数量触发的,而不是根据文件大小触发的。当很多的列族在flush和compaction时,会造成很多没用的I/O负载(要想解决这个问题,需要将flush和compaction操作只针对一个列族)


5,Time To Live 可以用该参数设置hbase里面存储的日志的实效时间。
6,major compaction
与minor compaction:
关于major
compaction.1,关闭自动的major
compaction 2手动编程major
compaction.设置成晚上合并
一般不对minor
compaction进行设置修改。
7,对于不太重要的数据写入hbase,可以关闭HLog的写入
8,Memstore实现了写缓存,Blockcache实现了读缓存,如果读比较多的话,可以设置该参数,这个参数是在create表的时候设置的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: