HBase在数据统计应用中的使用心得
由于项目开发的需要,使用HBase作为数据统计应用的存储系统,这里是一些经验总结以及对于使用过程中存在问题的解决思路。
1. 数据统计的需求
互联网上对于数据的统计,一个重要的应用就是对网站站点数据的统计,例如CNZZ站长统计、百度统计、Google Analytics、量子恒道统计等等。
网站站点统计工具无外乎有以下一些功能:
1)网站流量统计:包括PV、UV、IP等指标,这些统计指标可以以趋势图的形式展示出来,如最近一周、最近一个月等。
2)IP来源信息统计:记录各个来源IP下的访问PV数。
3)访问来源分析:记录访客是从哪些途径到达本网站的。
4)搜索引擎及搜索关键词分析:对于各个指定搜索引擎带来访问PV的变化及趋势进行分析;对不同时段内访客搜索关键词的流量趋势进行统计。
5)访问地区分析:统计不同时间段内各地区的PV浏览量、UV访客数的变化趋势。
6)最近访客流水:实时显示网站当前的被访问情况,包括访问时间、IP地址、来源网址、访问网址和来源地区等。
从统计的角度来看,这些业务功能的需求可以概括为:
1)各项统计指标的计算,如PV、UV、IP等,可以归结为的对一条一条数据求SUM、AVG等操作。
2)统计需求越来越要求实时性,访问来源随时随地发生,来源途径多样化。对于这类需求,不需要统计计算,而是要经过预处理后快速向用户展示其关心的数据。
3)可以将数据统计分为两部分来理解:一部分是对于实时数据的统计,动态展示站点的访问数据更新情况;另一部分是对于历史数据的统计,如用于各项报表分析。
2. HBase的实现思路
HBase是一个分布式的存储系统,可以很容易在廉价PC上搭建其大规模存储系统,用于存储海量数据,这使得HBase适合于作为站点数据统计工具的存储系统。
1)对于实时数据的统计,HBase能够提供较低延迟的读写访问,承受高并发的访问请求;而对于历史数据的统计,HBase则可以被视为一个巨大的Key-Value存储系统,用于存储各个网站上历史的访问信息,用于做离线的数据分析与报表生成。
2)对于像PV、UV、IP这样需要求累加计算的操作(求SUM/AVG),由于要对HBase表中相关记录进行扫描求和计算,所以如果被统计站点的数据量很大的话,使用HBase来做可能会保证不了很快的响应速度。也就是说,从前端发出一个查询请求到最终结果的响应,时间会比较长(超过1秒或更长)。对于这个问题,将在第3节进行讨论。
3)对于像站点访客流水信息这样的实时数据展示,则比较适合于使用HBase来做,只要我们设计了合理的key,那么在根据key取单条访问记录时响应速度会很快。
下面是一个使用HBase作为存储系统的结构示意图:
其中,HBase服务端就是指HBase集群,应用程序分别通过入库端与查询端对HBase进行写操作与读操作。
从HBase应用角度来看,可以分为两个不同的方向:
3. 问题的解决思路
针对第2节中提到的在使用HBase进行累加计算的操作(求SUM/AVG)时的问题,下面给出几种解决问题的思路与方法。
4. 总结的话
这里是在使用HBase进行数据统计应用中的一些经验总结,其中对于提到问题的解决思路,有过一些尝试,欢迎讨论。
建议继续学习:
- HBase集群出现NotServingRegionException问题的排查及解决方法 (阅读:16227)
- HFile存储格式 (阅读:14541)
- hbase运维 (阅读:13680)
- hbase介绍 (阅读:11035)
- HBase技术介绍 (阅读:6763)
- HBase随机写以及随机读性能测试 (阅读:6494)
- HBase性能优化方法总结 (阅读:5831)
- HBase二级索引与Join (阅读:5796)
- HBase Thrift 接口使用注意事项 (阅读:5413)
- Cassandra和HBase主要设计思路对比 (阅读:4140)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:jiuling.ypf 来源: 量子数科院
- 标签: HBase 数据统计
- 发布时间:2012-01-27 18:44:39
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [54] android 开发入门
- [52] Oracle MTS模式下 进程地址与会话信
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑