Twitter开源其MapReduce流框架: Summingbird

summingbird是一个基于Apache2的开源项目,它是一个大规模数据系统,能够以批处理模式(Hadoop/MapReduce-based)或流模式(Storm-based)两者方式执行代码。

Twitter为了处理50亿个帖子,他们需要手工继承MapReduce(Pig/Scalding) 和streaming-based (Storm) 代码,创建Summingbird的主要动机是认识到在Storm上运行一个实时系统存在以下困难:

1. 几个月历史记录的重新计算必须通过一个定制的日志加载机制协调Hadoop与Storm的流。

2.Storm主要着重于消息和随机写数据库,难于维护。

这种认识导致了Summingbird的灵活和通用的解决方案,解决了工程师现有的实际问题:
1.两套聚合逻辑都将在两个不同的系统保持同步
2.键和值必须在每次系统和客户端之间被一致序列化
3.客户端负责从两个数据存储读取,执行最后的聚集和服务于合并结果

Summingbird是第一个开放的Lambda架构,类似的系统包括Yahoo的Storm-YARN和 Lambdoop。