Twitter开源了其MapReduce 流处理框架 Summingbird 。Summingbird 是一个大规模数据处理系统,支持开发者以批处理模式(基于 Hadoop/MapReduce)或流处理模式(基于 Storm )或混合模式(即组合前两种模式)以统一的方式执行代码。它基于 Apache 2 许可发布。
现在的软件栈需要手工集成 MapReduce (Pig/Scalding) 和基于流(Storm)的代码,为了处理 5 亿的 Tweet 并能持续成长,Twitter 必须寻找一个替代品。关于创建 Summingbird 的主要动机,Twitter 的工程师提到,在于他们意识到,由于以下原因,在 Storm 上运行一个完全实时的系统非常困难:
- 要重新计算数月的历史日志,必须与 Hadoop 进行协作,或者是通过某种定制的日志加载机制形成通过 Storm 的流。
- Storm 专注的是消息传递,随机写入数据库很难维护。
正是这一洞见推动了 Summingbird 这一灵活而通用的方案的出现,它用于解决工程师使用现有方法遇到的实际问题:
- 两个不同系统中的两组聚合逻辑必须保持同步
- 在每个系统和客户端之间,键和值必须一致地进行序列化
- 客户端要负责从两个数据存储读取数据、执行最后的聚合并提供合并结果
Summingbird 也是第一批可以公开获得的 Lambda 架构兼容系统中的一个。类似的项目包括Yahoo 的 Storm-YARN 和一家西班牙创业公司即将发布的 Lambdoop 。Lambdoop 是一个 Java 框架,用于以与 Lambda 架构一致的方式开发大数据应用。Lambda 架构的特色是有一个不可修改、只能追加数据的主数据库,并组合了批处理、服务和加速等不同的层。这些特色支持开发者构建健壮的、可以进行批处理和流处理的大规模数据处理系统,其使用案例涉及从物联网(智能城市、可穿戴设备和制造业)之上的社交媒体平台(比如 Twitter、LinkedIn 等)到金融行业(欺诈检测和推荐)等。
Summingbird 的主要设计者 Oscar Boykin、Sam Ritchie(计算机科学界的传奇人物 Dennis Ritchie 的侄子)和 Ashutosh Singhal 进一步透露了该框架的路线图:
- 支持 Apache Spark 和列式数据存储格式 Parquet
- 在 Summingbird 的 Producer 原语之上的高层数学库和机器学习代码
- 与 相关开源项目(比如 Algebird 和 Storehaus)更深度的集成
查看英文原文: Twitter Open-Sources its MapReduce Streaming Framework Summingbird
评论