1、程式設計模型
datasource:外部資料來源
spout:接受外部資料來源的元件,將外部資料來源轉化成storm內部的資料,以tuple為基本的傳輸單元下發給bolt
bolt:接受spout傳送的資料,或上游的bolt的傳送的資料。根據業務邏輯進行處理。傳送給下乙個bolt或者是儲存到某種介質上。介質可以是redis可以是mysql,或者其他。
tuple:storm內部中資料傳輸的基本單元,裡面封裝了乙個list物件,用來儲存資料。
streamgrouping:資料分組策略
7種:shufflegrouping(random函式),non grouping(random函式),fieldgrouping(hash取模)、local or shufflegrouping 本地或隨機,優先本地。
2、併發度
使用者指定的乙個任務,可以被多個執行緒執行,併發度的數量等於執行緒的數量。乙個任務的多個執行緒,會被執行在多個worker(jvm)上,有一種類似於平均演算法的負載均衡策略。盡可能減少網路io,和hadoop中的mapreduce中的本地計算的道理一樣。
3、架構
nimbus:任務分配
supervisor:接受任務,並啟動worker。worker的數量根據埠號來的。
worker:執行任務的具體元件(其實就是乙個jvm),可以執行兩種型別的任務,spout任務或者bolt任務。
task:task=執行緒=executor。 乙個task屬於乙個spout或者bolt併發任務。
zookeeper:儲存任務分配的資訊、心跳資訊、元資料資訊。
4、worker與topology
乙個worker只屬於乙個topology,每個worker中執行的task只能屬於這個topology。 反之,乙個topology包含多個worker,其實就是這個topology執行在多個worker上。
乙個topology要求的worker數量如果不被滿足,集群在任務分配時,根據現有的worker先執行topology。如果當前集群中worker數量為0,那麼最新提交的topology將只會被標識active,不會執行,只有當集群有了空閒資源之後,才會被執行。
Storm架構和程式設計模型總結
1 程式設計模型 datasource 外部資料來源 spout 接受外部資料來源的元件,將外部資料來源轉化成storm內部的資料,以tuple為基本的傳輸單元下發給bolt bolt 接受spout傳送的資料,或上游的bolt的傳送的資料。根據業務邏輯進行處理。傳送給下乙個bolt或者是儲存到某種...
Storm 程式設計模型
元組 tuple 是訊息傳遞的基本單元,是乙個命名的值列表,元組中的字段可以是任何型別的對 象。storm使用元組作為其資料模型,元組支援所有的基本型別 字串和位元組陣列作為字段值,只要實現 型別的序列化介面就可以使用該型別的物件。元組本來應該是乙個key value的map,但是由於各個組 件間傳...
Storm 程式設計模型
元組 tuple 是訊息傳遞的基本單元,是乙個命名的值列表,元組中的字段可以是任何型別的對 象。storm使用元組作為其資料模型,元組支援所有的基本型別 字串和位元組陣列作為字段值,只要實現 型別的序列化介面就可以使用該型別的物件。元組本來應該是乙個key value的map,但是由於各個組 件間傳...