@[術語|storm]數據庫
Nimbus
:負責資源分配和任務調度。框架
Supervisor
:負責接受nimbus分配的任務,啓動和中止屬於本身管理的worker進程。函數
Worker
:運行具體處理組件邏輯的進程。線程
Task
:worker中每個spout/bolt的線程稱爲一個task.在storm0.8以後,task再也不與物理線程對應,同一個spout/bolt的task可能會共享一個物理線程,該線程稱爲executor。 code
Topology
:storm中運行的一個實時應用程序,由於各個組件間的消息流動造成邏輯上的一個拓撲結構。orm
Spout
:在一個topology中產生源數據流的組件。一般狀況下spout會從外部數據源中讀取數據,而後轉換爲topology內部的源數據。Spout是一個主動的角色,其接口中有個nextTuple()函數,storm框架會不停地調用此函數,用戶只要在其中生成源數據便可。接口
Bolt
:在一個topology中接受數據而後執行處理的組件。Bolt能夠執行過濾、函數操做、合併、寫數據庫等任何操做。Bolt是一個被動的角色,其接口中有個execute(Tuple input)函數,在接受到消息後會調用此函數,用戶能夠在其中執行本身想要的操做。進程
Tuple
:一次消息傳遞的基本單元。原本應該是一個key-value的map,可是因爲各個組件間傳遞的tuple的字段名稱已經事先定義好,因此tuple中只要按序填入各個value就好了,因此就是一個value list.資源
Stream
:源源不斷傳遞的tuple就組成了stream。input
stream grouping
:即消息的partition方法。Storm中提供若干種實用的grouping方式,包括shuffle, fields hash, all, global, none, direct和localOrShuffle等