1、初識Storm

一、Storm基本概念:
web

Nimbus:負責資源分配和任務調度數據庫

Supervisor:負責Nimbus分配的任務,啓動和中止屬於本身管理的worker進程編程

Worker:運行具體處理邏輯的組件進程ide

Spout/Bolt(Task):worker中每個(Spout/Bolt)線程稱爲一個Task,在storm0.8版本以後,task再也不與物理線程對應,同一個Spout/Bolt的Task可能共享一個物理線程,該線程稱爲executorspa

Topology:全部組件(即Spouts/Bolts)的排列與鏈接被稱之爲一個Topology線程

Spout:產生源數據流的組件component

Bolt:接收、執行數據的組件orm

Tuple:消息傳遞的基本單元(將消息放在Tuple中進行傳輸)對象

Stream:源源不斷的傳遞的Tuple組成了Stream進程

數據處理的過程:

    處理工做被分派給不一樣類型的組件(components),每一個組件分別負責一個簡單、特定的處理任務。處理Storm集羣輸入流的組件叫噴口(spout),噴口再將數據傳給一個叫螺栓(bolt)的組件,並在螺栓中處理數據,處理完成以後,螺栓要麼將這些數據存儲起來(存儲在數據庫、磁盤甚至是對象中),要麼將它傳給其餘螺栓。所以,能夠將Storm集羣想象成一個螺栓鏈,每一個螺栓都會對噴口發送的數據做出一些處理。

二、Storm特性(優點/好處)

    編程簡單、支持多種語言編程、容錯、可擴展、可靠、快速、事務性

    與其它實時計算系統(s4, puma)的區別

    記錄級容錯:告知用戶每個消息單元是否在指定的時間內被徹底處理(消息單元是否徹底通過Topology每個Bolt組件的處理)

    一、Spout在發送一個新源時會爲Tuple指定一個Message Id(這個MessageId能夠是任意對象)

    二、Topology中有一個系統級組件叫acker,acker追蹤每個從Spout中綁定MessageId所流出來的若干個Tuple的處理路徑

    三、若是用戶設置的最大超時時間內這些tuple沒有被徹底處理,那麼acker就會告知spout該消息處理失敗了,相反則會告知spout該消息處理成功了

    事務拓撲(Transactional Topology):storm0.7版本引入的新特性,在0.8版本替換爲Trident,在0.9版本棄用,目的是爲了知足對消息處理有着極其嚴格要求的場景,例如實時計算某個用戶的成交筆數,要求結果徹底精確,不能多也不能少。

相關文章
相關標籤/搜索