淘宝的hbase规模:
1、基于0.90.3;
2、10个独立集群,大约300台机器;
3、机器配置:16 core,24G/48G,SATA 1T*12/SAS 300G *12;
4、大约200k ops/sec,70%写,30%读。
遇到的问题:
1、region书越来越多,每秒写的速度会下降很快(8000降到2000)
--->解决办法:将锁机制改为“无锁”。
2、regionServerOOM(内存溢出)
--->原因1:rowkey设计问题
原因2:setMaxFileSize太大,解压会使用近双倍的空间
原因3:region太多
3、.meta表空洞
--->原因:split失败,数据恢复时恢复不完整(丢失数据!!!!)
4、.meta表出现startKey/endKey相同的region
--->推荐解决办法:手工合并为一个region(facebook推荐)。该方法在线系统基本上不可行。
5、master split hlog 阶段失败会造成数据丢失
6、读取量太大时,写的速度会变慢
--->原因:RPC机制
--->临时解决办法:读写分离;对同一个region server建立多个连接
建议使用场景:
1、瞬间写入量很大,数据库不好支撑或需要很高成本支撑的场景;
2、数据需要长久保存,且量会持续增长到比较大的场景;
实践经验:
1、合理设计rowKey,非常重要;
2、数据最好是可恢复的(Facebook也如此建议);
3、生产环境关闭split,region数不要太多(此建议来自Facebook)