09月22日 :Twitter的流處理系統Storm最近出現了一個“翻版”——Samza。Samza是近日由LinkedIn開源的一項技術,它是一個分布式流處理框架,專用于實時數據的處理,非常像Twitter的流處理系統Storm。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系統。
Storm和Samza極其相似,就像LinkedIn的Chris Riccomini在博客中闡述的那樣:“[Samza]可以幫助你構建應用,處理消息隊列——更新數據庫、計數以及其他的聚合、轉換消息等等。”而這些其實都是很經典的Storm應用,只不過遷移到Samza之上了,Samza文檔也對比了這兩個系統。
上個月,Samza在各種論壇和社區上被廣泛傳播,其中有評論指出了Samza可能帶來的好處:
“跟很多人一樣,我們使用Storm來處理基于Kafka的流數據,然后,再將這些數據發送到Hadoop上進行離線分析。如果能把這三個環境整合到一起,就是一個很大的勝利。“
表面上看,這似乎是一個很不錯的想法。Apache軟件基金會的項目主頁,介紹了搭配使用Kafka和YARN的特點和優勢。
高容錯: 如果服務器或者處理器出現故障,Samza將與YARN一起重新啟動流處理器。高可靠性:Samza使用Kafka來保證所有消息都會按照寫入分區的順序進行處理,絕對不會丟失任何消息。可擴展性:Samza在各個等級進行分割和分布;Kafka提供一個有序、可分割、可重部署、高容錯的系統;YARN提供了一個分布式環境供Samza容器來運行。
Samza的未來
至于Samza能不能像Storm一樣吸引大量的用戶和社區參與創新,還有待觀察。但是LinkedIn肯定會像Twitter開發Storm一樣來保證Samza的發展,而且后者在可用性上更具優勢,畢竟運行在YARN或者Mesos框架上的Samza多了一些靈活性。
如果Samza未來有一個很好的前景,那么YARN也對得起Hadoop社區在過去18月的“炒作”,它不僅可以運行Storm,還可以運行Samza,甚至還可以運行其他很多的東西。這點很重要,畢竟很多軟件廠商都把大數據的“期貨”(甚至整個未來)壓在了Hadoop上,他們希望這個平臺能成為最后的贏家。
以往對MapReduce技術的依賴限制了Hadoop的適用性,但是YARN已經開放了對大規模的流處理、交互式SQL查詢、機器學習和圖像處理負載的支持。隨著技術的日新月異,Hadoop成為支撐所有大數據應用庫的想法變得更加現實。