1. 程式人生 > >Strom核心元件與程式設計模型

Strom核心元件與程式設計模型

1.Strom介紹
Storm用來實時處理資料,特點:低延遲、高可用、分散式、可擴充套件、資料不丟失。提供簡單容易理解的介面,便於開發
2.strom與hadoop的區別
 Storm用於實時計算,Hadoop用於離線計算。
 Storm處理的資料儲存在記憶體中,源源不斷;Hadoop處理的資料儲存在檔案系統中,一批一批。
 Storm的資料通過網路傳輸進來;Hadoop的資料儲存在磁碟中。
 Storm與Hadoop的程式設計模型相似
在這裡插入圖片描述
Job:任務名稱
JobTracker:專案經理
TaskTracker:開發組長、產品經理
Child:負責開發的人員
Mapper/Reduce:開發人員中的兩種角色,一種是伺服器開發、一種是客戶端開發

Topology:任務名稱
Nimbus:專案經理
Supervisor:開組長、產品經理
Worker:開人員
Spout/Bolt:開人員中的兩種角色,一種是伺服器開發、一種是客戶端開發

3.Storm核心元件
在這裡插入圖片描述
 Nimbus:負責資源分配和任務排程。
 Supervisor:負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。—通過配置檔案設定當前supervisor上啟動多少個worker。
 Worker:執行具體處理元件邏輯的程序。Worker執行的任務型別只有兩種,一種是Spout任務,一種是Bolt任務。
 Task:worker中每一個spout/bolt的執行緒稱為一個task. 在storm0.8之後,task不再與物理執行緒對應,不同spout/bolt的task可能會共享一個物理執行緒,該執行緒稱為executor。

4.Storm程式設計模型
在這裡插入圖片描述
 Topology:Storm中執行的一個實時應用程式的名稱。(拓撲)
 Spout:在一個topology中獲取源資料流的元件。
通常情況下spout會從外部資料來源中讀取資料,然後轉換為topology內部的源資料。
 Bolt:接受資料然後執行處理的元件,使用者可以在其中執行自己想要的操作。
 Tuple:一次訊息傳遞的基本單元,理解為一組訊息就是一個Tuple。
 Stream:表示資料的流向。