探訪美式微博Twitter的大資料技術架構

小旋風柴進發表於2017-04-03
0.jpg

 

Twitter要上市了,再一次讓全球矚目,正是它所創造的twitte讓網際網路進入了微創新的時代。雖然它沒有進入中國,但受其啟發的新浪微博和騰訊微博在中國網際網路上也成為一道亮麗的風景。Twitter在全球擁有巨大的使用者群,海量的社交資訊流,支撐其運轉的大資料技術架構也頗受人關注。

Twitter的大資料架構也是分為基於Hadoop的批處理和基於Storm的實時流計算等主要型別,主要基於開源專案中進行開發和發展。Twitter收集資料採用的是Facebook開源的日誌工具Scribe,批處理地儲存和分析資料採用Hadoop+MapReduce,在大資料上的快速分析採用Pig。Pig是基於Hadoop的平行計算高階程式語言,它提供一種類SQL的資料分析高階文字語言,稱為Pig Latin,該語言的編譯器會把類SQL的資料分析請求轉換為一系列經過優化處理的MapReduce運算。Pig支援的常用資料分析主要有分組、過濾、合併等。

Storm是Twitter的開源流計算平臺,Storm通過簡單的API使開發者可以可靠地處理無界持續的流資料,進行實時計算,開發語言為Clojure和Java。Storm的應用場景很多,如實時分析、線上機器學習、持續計算等。

Twitter的儲存有很多工具,體現了其在不同發展階段的作用,也試用於不同的應用場景。NOSQL資料庫至少包含了HBase、Cassandra和FlockDB等。HBase被用於批處理的分析和資料集生成,Cassandra被用於線上系統,支援動態讀寫,FlockDB則用於實時分佈的社交圖的儲存。

在大資料2.0的時代,Twitter的大資料技術架構也在不斷吸收更多開源技術的精華,相容幷蓄,不斷進化。例如,Mesos被twitter引進用於分散式大資料技術架構的作業系統,能夠對Hadoop等計算儲存資源進行合理排程。

Twitter的大資料技術架構

1.jpg

再如,剛剛開源的Summingbird,實現了批處理和實時流計算在一個平臺架構下的整合,開發者可以使用非常接近原生的Scala或者Java 在Summingbird上執行MapReduce作業,既可以使用Summingbird做“批處理”,也可以使用它做“實時處理”,同時,還可以使用兩種模式的混合。做到寫一次邏輯,一次性解決所有問題。Summingbird進一步的工作包括對Akka、Spark和Tez等平臺的支援,這有利於Twitter把更多平臺和工具引入到自身的大資料技術架構體系中。

基於Twitter強大的大資料技術架構,它正在實現向大資料分析和服務商的轉型,越來越多的基於Twitter的分析工具、應用APP和商業模式被挖掘出來,資料分析產業生態鏈逐步建立起來,其帶來的想象空間非常巨大。我想,人們所期待的新浪微博的祕密的大資料技術架構專案也一定是朝著這個方向進行著努力。


原文釋出時間為:2013-11-02


本文來自雲棲社群合作伙伴“大資料文摘”,瞭解相關資訊可以關注“BigDataDigest”微信公眾號


相關文章