Firefox4的推出让很很多人都竖起了大拇指,其下载量也一直在上涨,为此Firefox专门做了一个页面(http://glow.mozilla.org/)展示FF4的下载状况。下面是其截图:
而在此页面背后的数据支持,是由HBase承担的。下面是mozilla官方对此页面的技术实现的描述:
- 首先负责 download.mozilla.org 下载任务的服务器集群被配置成向一个远端服务器发送syslog日志。
- 这台日志服务器上运行了rsyslog,它将发送过来的syslog日志过滤后放入到按小时分片的存储中。
- 这台机器安装了SQLStream,它会一直tail出新加入的日志。
- SQLStream 对每条请求日志做如下操作:
- 过滤掉所有无效的下载请求。
- 使用 MaxMind GeoIP 通过日志中记录的请求IP来获取请求的来源地。
- 使用groupby操作将数据按下载量,下载地址及下载时间进行归类。
- 每10秒钟将计算结果发给HBase,HBase中有一个按时间记录的数据行,标识了这一时间哪个地点有多少下载量。
- glow的后端是一个python app,它使用Python Thrift协议向HBase中拉出数据,转换为JSON并存在一个按分钟分片的文件中。
- JSON文件用时间命名,它可以被网站的前端机缓存住以使用。
- 然后glow的网页获取JSON文件的内容,将里面每段时间的下载情况在页面上进行展示。
英文原文:How glow.mozilla.org gets its data |