Storm 學習筆記 (一)菜鳥樂園

Storm 好像傳統的滾梯,來了數據就處理

Hadoop好像是電梯,批量處理數據

Spark streaming 微批處理介於滾梯和電梯之間

Storm 特徵

storm 是個實時的,分佈式的以及高容錯的計算框架

1 storm 常駐內存

2 storm幾乎不經過硬盤,在內存中處理

下面通過官方拓撲圖理解下


看圖說話

1 水龍頭  spout 數據的源頭

2 水滴      tuple    中文 元組  相當於關係型數據庫裏的一行數據   es裏的doc  java裏的object

               在storm裏代表storm架構處理數據的最小單位

3 水滴加閃電       在storm 裏 代表一個bolt(雷電)  (component元件) 一個處理單元

                              spout vs bolt    1 vs  n

4 從圖中我們還可以知道這是一個DAG圖,directed acyclic grapth   有向無環圖

Storm架構 (主從)

1 Nimbus       (老闆)    相當於hadoop的namenode

任務分配,資源調度

2 Supervisor   (監工)    相當於hadoop的datanode

指派老闆分配下來的任務,通過開啓關閉工作進程的方式

3 worker          (工人)         具體幹活的進程

數據傳輸

結點間通訊採用技術

1 ZMQ 

twitter早期產品  zero message  queue 開源的消息傳遞框架  後來發現有bug不用了

2  Netty

netty是一種基於nio的網絡框架,更加高效,storm0.9後使用Netty,其實也是一種消息隊列

高可靠性

     1 異常處理

     2 消息可靠性保障機制   ACKER機制

可維護性

Storm ui 圖形化監控接口

Storm 流式處理

異步的實時分析

例:計算PV、UV、訪問熱點 以及 某些數據的聚合、加和、平均等
       客戶端提交數據之後,計算完成結果存儲到Redis、HBase、MySQL或者其他MQ當中,
       客戶端並不關心最終結果是多少。



 


同步是實時分析


客戶端提交數據請求之後,立刻取得計算結果並返回給客戶端,推薦系統



Storm 和 MapReduce區別

Storm:進程、線程常駐內存運行,數據不進入磁盤,數據通過網絡傳遞。

MapReduce:爲TB、PB級別數據設計的批處理計算框架。


Storm 和   Spark Streaming 區別

Storm:純流式處理
專門爲流式處理設計
數據傳輸模式更爲簡單,很多地方也更爲高效
並不是不能做批處理,它也可以來做微批處理,來提高吞吐
Spark Streaming:微批處理
將RDD做的很小來用小的批處理來接近流式處理

基於內存和DAG可以把處理任務做的很快


未完待續!!!!!













    




 





 






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章