Twitter開源了其流處理框架Summingbird
Twitter開源了其MapReduce流處理框架Summingbird。Summingbird是一個大規(guī)模數(shù)據(jù)處理系統(tǒng),支持開發(fā)者以批處理模式(基于Hadoop/MapReduce)或流處理模式(基于Storm)或混合模式(即組合前兩種模式)以統(tǒng)一的方式執(zhí)行代碼。它基于Apache 2許可發(fā)布。
現(xiàn)在的軟件棧需要手工集成MapReduce (Pig/Scalding)和基于流(Storm)的代碼,為了處理5億的Tweet并能持續(xù)成長,Twitter必須尋找一個替代品。關(guān)于創(chuàng)建Summingbird的主要動機,Twitter的工程師提到,在于他們意識到,由于以下原因,在Storm上運行一個完全實時的系統(tǒng)非常困難:
- 要重新計算數(shù)月的歷史日志,必須與Hadoop進行協(xié)作,或者是通過某種定制的日志加載機制形成通過Storm的流。
- Storm專注的是消息傳遞,隨機寫入數(shù)據(jù)庫很難維護。
正是這一洞見推動了Summingbird這一靈活而通用的方案的出現(xiàn),它用于解決工程師使用現(xiàn)有方法遇到的實際問題:
- 兩個不同系統(tǒng)中的兩組聚合邏輯必須保持同步
- 在每個系統(tǒng)和客戶端之間,鍵和值必須一致地進行序列化
- 客戶端要負責(zé)從兩個數(shù)據(jù)存儲讀取數(shù)據(jù)、執(zhí)行***的聚合并提供合并結(jié)果
Summingbird也是***批可以公開獲得的Lambda架構(gòu)兼容系統(tǒng)中的一個。類似的項目包括Yahoo的Storm-YARN 和一家西班牙創(chuàng)業(yè)公司即將發(fā)布的Lambdoop。Lambdoop是一個Java框架,用于以與Lambda架構(gòu)一致的方式開發(fā)大數(shù)據(jù)應(yīng)用。Lambda架構(gòu)的特色是有一個不可修改、只能追加數(shù)據(jù)的主數(shù)據(jù)庫,并組合了批處理、服務(wù)和加速等不同的層。這些特色支持開發(fā)者構(gòu)建健壯的、可以進行批處理和流處理的大規(guī)模數(shù)據(jù)處理系統(tǒng),其使用案例涉及從物聯(lián)網(wǎng)(智能城市、可穿戴設(shè)備和制造業(yè))之上的社交媒體平臺(比如Twitter、LinkedIn等)到金融行業(yè)(欺詐檢測和推薦)等。
Summingbird的主要設(shè)計者Oscar Boykin、Sam Ritchie(計算機科學(xué)界的傳奇人物Dennis Ritchie的侄子)和Ashutosh Singhal 進一步透露了該框架的路線圖:
- 支持Apache Spark和列式數(shù)據(jù)存儲格式Parquet
- 在Summingbird的Producer原語之上的高層數(shù)學(xué)庫和機器學(xué)習(xí)代碼
- 與 相關(guān)開源項目(比如Algebird和Storehaus)更深度的集成
查看英文原文:Twitter Open-Sources its MapReduce Streaming Framework Summingbird