Twitter開源了其流處理框架Summingbird
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