大數據Storm相比於Spark、Hadoop有哪些優勢(摘錄)

一、可能很多初學大數據的夥伴不知道strom是什麼,先給大家介紹一下strom:
分佈式實時計算系統,storm對於實時計算的意義類似於hadoop對於批處理的意義。
storm的適用場景。
流數據處理。Storm可以用來處理源源不斷流進來的消息,處理之後將結果寫入到某個存儲中去。
分佈式rpc。由於storm的處理組件是分佈式的,而且處理延遲極低,所以可以作爲一個通用的分佈式rpc框架來使用。當然,其實我們的搜索引擎本身也是一個分佈式rpc系統
有一句話叫做三人行必有我師,其實做爲一個開發者,有一個學習的氛圍
跟一個交流圈子特別重要這是一個我的大數據交流學習羣531629188
不管你是小白還是大牛歡迎入駐,正在求職的也可以加入
,大家一起交流學習,話糙理不糙,互相學習,共同進步,一起加油吧。

二、然後我們再看下Storm、Spark、 Hadoop都有何特點

Storm: 分佈式實時計算,強調實時性,常用於實時性要求較高的地方;
Hadoop:分佈式批處理計算,強調批處理,常用於數據挖掘、分析;
Spark:是一個基於內存計算的開源的集羣計算系統,目的是讓數據分析更加快速, Spark 是一種與 Hadoop 相似的開源集羣計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。
三、strom的優勢

  1. 簡單編程
    在大數據處理方面相信大家對hadoop已經耳熟能詳,基於GoogleMap/Reduce來實現的Hadoop爲開發者提供了map、reduce原語,使並行批處理程序變得非常地簡單和優美。同樣,Storm也爲大數據的實時計算提供了一些簡單優美的原語,這大大降低了開發並行實時處理的任務的複雜性,幫助你快速、高效的開發應用。
    Spark提供的數據集操作類型有很多種,不像Hadoop只提供了Map和Reduce兩種操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union, join, cogroup,mapValues, sort,partionBy等多種操作類型,他們把這些操作稱爲Transformations。同時還提供Count, collect, reduce, lookup, save等多種actions。這些多種多樣的數據集操作類型,給上層應用者提供了方便。各個處理節點之間的通信模型不再像Hadoop那樣就是唯一的Data Shuffle一種模式。用戶可以命名,物化,控制中間結果的分區等。可以說編程模型比Hadoop更靈活.。
  2. 多語言支持
    除了用java實現spout和bolt,你還可以使用任何你熟悉的編程語言來完成這項工作,這一切得益於Storm所謂的多語言協議。多語言協議是Storm內部的一種特殊協議,允許spout或者bolt使用標準輸入和標準輸出來進行消息傳遞,傳遞的消息爲單行文本或者是json編碼的多行。
    Storm支持多語言編程主要是通過ShellBolt,ShellSpout和ShellProcess這些類來實現的,這些類都實現了IBolt 和 ISpout接口,以及讓shell通過java的ProcessBuilder類來執行腳本或者程序的協議。
    可以看到,採用這種方式,每個tuple在處理的時候都需要進行json的編解碼,因此在吞吐量上會有較大影響。
  3. 支持水平擴展
    在Storm集羣中真正運行topology的主要有三個實體:工作進程、線程和任務。Storm集羣中的每臺機器上都可以運行多個工作進程,每個工作進程又可創建多個線程,每個線程可以執行多個任務,任務是真正進行數據處理的實體,我們開發的spout、bolt就是作爲一個或者多個任務的方式執行的。
    因此,計算任務在多個線程、進程和服務器之間並行進行,支持靈活的水平擴展。
  4. 容錯性強
    如果在消息處理過程中出了一些異常,Storm會重新安排這個出問題的處理單元。Storm保證一個處理單元永遠運行(除非你顯式殺掉這個處理單元)。
  5. 可靠的消息保證
    Storm可以保證spout發出的每條消息都能被“完全處理”,這也是直接區別於其他實時系統的地方,如S4。
  6. 快速的消息處理
    用ZeroMQ作爲底層消息隊列, 保證消息能快速被處理
  7. 本地模式,支持快速編程測試
    Storm有一種“本地模式”,也就是在進程中模擬一個Storm集羣的所有功能,以本地模式運行topology跟在集羣上運行topology類似,這對於我們開發和測試來說非常有用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章