开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
Rainbird首页、文档和下载 - 分布式实时统计系统 - 开源中国社区
全部项目分类
我要评价
未知
Java
跨平台
分享
收藏
78 人收藏
收录时间:2012-04-11
Rainbird 详细介绍

Rainbird 是 Twitter开发的一款分布式实时统计系统。

用处

Rainbird可以用于实时数据的统计:

1 统计网站中每一个页面,域名的点击次数

2 内部系统的运行监控(统计被监控服务器的运行状态)

3 记录最大值和最小值

 

性能要求

作为大型网站的分布式应用,需要具备以下性能: 

1 极高的写入性能,可以达到100,000的WPS

2 非常高的读取性能,可以达到10,000s的RPS

3 高度的可扩展性,包括读取和存储等等,能够扩展到100+ TB的量级

4 读取速度响应间隔短,绝大多数的读取速度应该不超过100ms

 

系统组件

Rainbird一款基于Zookeeper, Cassandra, Scribe, Thrift的分布式实时统计系统,这些基础组件的基本功能如下:

1 ZookeeperHadoop子项目中的一款分布式协调系统,用于控制分布式系统中各个组件中的一致性。

2 Cassandra,NoSQL中一款非常出色的产品,集合了Dynamo和Bigtable特性的分布式存储系统,用于存储需要进行统计的数据,统计数据,并且提供客户端进行统计数据的查询。(需要使用分布式Counter补丁CASSANDRA-1072)

3 Scribe,Facebook开源的一款分布式日志收集系统,用于在系统中将各个需要统计的数据源收集到Cassandra中。

4 Thrift,Facebook开源的一款跨语言C/S网络通信框架,开发人员基于这个框架可以轻易地开发C/S应用。

 

整体设计

Rainbird的设计架构图如下:

整个Rainbird系统中各个组件之间的协调和容灾处理由ZooKeeper负责,Cassandra负责整个数据的存储和统计。

Front End中部署了Scribe,收集需要统计的数据,然后将收集到数据实时地发生到Rainbird Aggregator中。

Rainbird Aggregator将缓存收集的数据(1M),并将缓存的数据进行一次预处理,然后再将数据一次性批量写入到Cassandra中。这里预处理的作用类似于MapReduce框架中的combiner的作用,在Maper端做Reduce。

Rainbird Query接受用户的查询请求,直接到Cassandra中查询已经统计好的数据返回给客户端。


大家对 Rainbird 的评论 (全部 1 条评论)
{{repayCom.userName}}
靖先生
国内唯一一个Cassandra中文社区 innosql.cn,知识分享、收录、互动交流平台
顶部