Storm的簡單總結

1. Storm是什麼:編程

    Storm簡單來講,就是分佈式實時計算系統。服務器

     按照storm做者的說法,storm對於實時計算的意義相似於hadoop 對於批處理的意義 。網絡

2. Storm的主要特色:
架構

    1.簡單的編程模型。相似於Map Reduce下降了並行批處理複雜性,Storm下降了進行實時處理的複雜性。
    2.可使用各類編程語言。你能夠在Storm之上使用各類編程語言。默認支持C lojure、Java、Ruby和Python。框架

        要增長對其餘語言的支持,只需實現一個簡單的Storm通訊協議便可。
    3.容錯性。Storm會管理工做進程和節點的故障。
    4.水平擴展。計算是在多個線程、進程和服務器之間並行進行的。
    5.可靠的消息處理。Storm保證每一個消息至少能獲得一次完整處理。任務失敗時,它會負責從消息源重試消息。
    6.快速。系統的設計保證了消息能獲得快速的處理。
    7.本地模式。Storm有一個「本地模式」,能夠在處理過程當中徹底模擬Storm集羣。這讓你能夠快速進行開發和單元測試。編程語言


2. Storm與Spark、Hadoop的比較:    
    對比Hadoop的批處理,Storm是個實時的、分佈式以及具有高容錯的計算系統。同Hadoop同樣Storm也能夠處理大批量的數據,分佈式

    然而Storm在保證高可靠性的前提下還可讓處理進行的更加實時;也就是說,全部的信息都會被處理。ide

    Storm一樣還具有容錯和分佈計算這些特性,這就讓Storm能夠擴展到不一樣的機器上進行大批量的數據處理。
 oop

    storm的網絡直傳、內存計算,其時延必然比 hdfs傳輸低得多;當計算模型比較適合流式時,storm的流式處理,性能

     省去了批處理的收集數據的時間;由於storm是服務型的做業,也省去了做業調度的時延。因此從時延上來看,

     storm要快於hadoop。

     比較:hadoop是磁盤級計算,進行計算時,數據在磁盤上,須要讀寫磁盤;

             Storm是內存級計算,數據直接經過網絡導入內存。讀寫內存比讀寫磁盤速度快n個數量級。

              使用領域不一樣,一個是批量處理,基於任務調度的;另一個是實時處理,基於流。

 
    從原理角度來說:
        1.  hadoop M/R基於HDFS,須要切分輸入數據、產生中間數據文件、排序、數據壓縮、多份複製等,效率較低。
        2. Storm 基於Zero M Q這個高性能的消息通信庫,不持久化數據。


    storm的適用場景:
        1.  流數據處理。Storm能夠用來處理源源不斷流進來的消息,處理以後將結果寫入到某個存儲中去。
        2. 布式rpc。因爲storm的處理組件是分佈式的,並且處理延遲極低,因此能夠做爲一個通用的分佈式框架來使用。

          固然,其實咱們的搜索引擎自己也是一個分佈式rpc系統。


      應用:storm被普遍用來進行實時日誌處理,出如今實時統計、實時風控、實時推薦等場景中。 

      在淘寶個性化搜索實時分析項目中,使用timetunnel + hbase + storm + ups的架構,天天可處理幾十億的用戶日誌信息,

     從用戶行爲發生到完成分析延遲在秒級。

相關文章
相關標籤/搜索