大數據處理之流式計算簡介

  1. 簡介數據庫

    Strom是一個開源的分佈式流式計算系統,用來處理流式的數據,被稱做爲流式的hadoop,在電信行業,能夠用來作大流量預警、終端營銷、訪問競爭對手產品從而作挽留等業務。本文將從storm在hadoop生態圈中所處位置、storm中術語、storm平臺搭建、storm應用程序構建等詳細介紹storm。數據結構

  2. Strom在大數據生態圈中的位置架構


wKioL1YlmqbSDM7KAAM79f84AX4716.jpg

  1. 上圖能夠看出,Storm處於HDFS之上,可是並非說Storm只能是處理HDFS中數據,反而Storm的數據來源通常是Log日誌或者是Kafka中數據,當數據經過Strom處理完成以後,其流向能夠是HDFS、HBase、關係型數據庫等。分佈式

  2. Strom是一個計算系統,在大數據處理中,咱們耳熟能詳的計算系統是mapreduce,這張架構圖看出storm和mapreduce是同級關係,而storm被稱做是流式的hadoop。因此接下來將經過與mapreduce進行對比來介紹stormide

3.Strom經常使用術語介紹函數

Strom MapReduce(基於hadoop2.X) 描述
Nimbus ApplicationMaster MapReduce中Resourcemanager負責任務分配、資源申請,一樣的在Strom中Nimbus負責代碼的分發,任務的分配和調度工做
Supervisor NodeManager MapReducer中NodeManager負責資源的申請,工做進程啓動和監控,Strom中Supervisor一樣負責任務進程的啓動和中止
Worker
YarnChild 真正負責任務處理的進程
Topology MapReduce 驅動程序






4. wKiom1Ylp9OyXmSyAAE0M4qtHUE217.jpg
  • Strom架構Topology:經過Storm構建的應用程序描述了數據的來源、數據的處理邏輯和數據的流向。oop

  • Spout:Topology中的組件,經過Spout描述了數據的來源,Spout中有一個nextTuple()函數,該函數會不停的被調用,源數據的生成就在該函數中實現,而後數據流向下一節點,每一個Topology中只容許有一個Spout。大數據

  • Bolt:Topology中的組件,該組件接收上一節點(Spout或Bolt)發射過來的數據,該組件中有一個execute(Tuple tuple)方法,當接收到數據後該函數會被動執行,進行合併、篩選、持久化等操做。Bolt能夠是Topology中一次完整的數據處理流程的終點,或者是轉移點。spa

  • Tuple:Tuple是Storm中傳遞消息的基本單元,Tuple的數據結構爲一個List。日誌

  • Stream:接二連三的Tuple就組成了Stream。

  • Stream grouping:描述了數據在不一樣的組件(Spout/Bolt)之間流轉時,partition的規則,類型以下:

1.shuffle Grouping:隨機分組,隨機派發stream裏面的tuple,保證每一個bolt接收到的tuple數目相同
2.Fields Grouping:按照字段分組,相同的字段會分配到相同的bolt,不一樣的字段分配到不一樣的Bolt
3.ALL Grouping:廣播,對每個tuple,全部的bolt都會收到
4.Global Grouping:全局分組,這個tuple被分配到storm的一個bolt的一個task內,即id最低的那個
5.Non Grouping:不分組,目前效果和Global Groouping同樣
6.Direct Grouping:直接分組,指定消息的接收者。
相關文章
相關標籤/搜索