立即注册 登录
About云-梭伦科技 返回首页

灰太狼_V0的个人空间 https://www.aboutyun.com/?4629 [收藏] [复制] [分享] [RSS]

日志

HBASE应用场景

已有 2551 次阅读2014-6-2 22:50

         首先分析一下IO性能。HBase写入有memstore作为缓存,写入时可以忽略LSMT的处理,如果开启WAL,写入操作效率近似于hdfs性能。顺序读取的话,有block catch,它每次加载一个Store fileblock,因此这个策略对于顺序读取具有独特的优势,测试的时候单机能有几万的QPS。但是这个策略是随机读取的噩梦,因为当读取足够随机的话,一方面缓存内容会被频繁置换,无法达到缓存的目的,并频繁引发GC;另一方面,缓存读取过程是读取整个block,然后从block中选出记录,从这一层次来看,每次get实际上并非单纯的key value查找,而是相当于多次二分查找。基于以上两方面,增大内存无法解决根本问题,而用SSD作为二级缓存的话,会浪费较多的io,测试时单机QPS最高25000左右(与之前的测试基于相同的数据特征)。一般的做法是在前端加入memcache这样的纯key value缓存。

         综上,我们分析一下HBase的应用场景。

         首先从数据特征来看适合存储于的数据类型:HBase适合结构化(单纯的、海量的key value)或半结构化的(基于key索引的图片、音乐、二进制文件等)非关系型的数据。举例来说,网页搜索相关数据、软件下载站、各种快照信息、非关系型业务二维表等。

         然后,从IO来看适合做什么样的处理:HBase适合大规模写入(注意适时禁用auto split)、扫库的业务,对于随机读取,需要特殊处理。举例来说在线业务适合分页的、单表的、无基于列族做排序和分组处理的查询和展现,少量随机查询和展现;离线业务适合更灵活的统计分析处理和报表导出等。

         对于不同的业务数据,有几个参数需要针对不同情况进行调整:maxfilesizeblocksizememstore大小。


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条