Storm介紹及核心元件和程式設計模型

2022-05-24 05:06:09 字數 3270 閱讀 2381

離線計算

離線計算:批量獲取資料、批量傳輸資料、週期性批量計算資料、資料展示

代表技術:sqoop批量匯入資料、

hdfs

批量儲存資料、

mapreduce

批量計算資料、

hive

批量計算資料、azkaban/oozie

任務排程

流式計算

流式計算:資料實時產生、資料實時傳輸、資料實時計算、實時展示

代表技術:flume實時獲取資料、

kafka/metaq實時資料儲存、storm/jstorm實時資料計算、redis實時結果快取、持久化儲存(mysql)。

一句話總結:將源源不斷產生的資料實時收集並實時計算,盡可能快的得到計算結果

離線計算和實時計算的區別

實時收集、實時計算、實時展示

storm

storm用來實時處理資料,特點:低延遲、高可用、分布式、可擴充套件、資料不丟失。提供簡單容易理解的介面,便於開發。

storm和hadoop的區別

(storm實時流處理,每秒可處理數萬條訊息;hadoop批處理,hdfs和mapreduce處理大量資料通常需要幾分鐘到幾小時)

storm用於實時計算,

hadoop

用於離線計算。

storm處理的資料儲存在記憶體中,源源不斷

hadoop

處理的資料儲存在檔案系統中,一批一批。

storm的資料通過網路傳輸進來;

hadoop

的資料儲存在磁碟中。

storm與

hadoop

程式設計模型相似

job:任務名稱

jobtracker:專案經理

tasktracker:開發組長、產品經理

child:負責開發的人員

topology:任務名稱

nimbus:專案經理

supervisor:開發組長、產品經理

worker:開發人員

spout/bolt:開人員中的兩種角色,一種是伺服器開發、一種是客戶端開發

storm應用場景

storm用來實時計算源源不斷產生的資料,如同流水線生產一樣。

l日誌分析

海量日誌中分析出特定的資料,並將分析的結果存入外部儲存器用來輔佐決策。

l管道系統

將乙個資料從乙個系統傳輸到另外乙個系統,比如將資料庫同步到hadoop

l訊息轉化器

將接受到的訊息按照某種格式進行轉化,儲存到另外乙個系統如訊息中介軟體

storm核心元件(重要

nimbus(主節點):負責資源分配和任務排程。

supervisor(從節點):負責接受

nimbus

分配的任務,啟動和停止屬於自己管理的

worker

程序。---通過配置檔案設定當前

supervisor

上啟動多少個

worker

。worker的數量根據埠號來的!

worker(程序):執行具體處理元件邏輯的程序(其實就是乙個jvm)。

worker

執行的任務型別只有兩種,一種是

spout

任務,一種是

bolt

任務。task(執行緒)

worker

中每乙個

spout/bolt

的執行緒稱為乙個

task.

在storm0.8

之後,task

不再與物理執行緒對應,不同

spout/bolt

的task

可能會共享乙個物理執行緒,該執行緒稱為

executor

。task=執行緒=executor

zookeeper(分布式協調服務):儲存任務分配的資訊、心跳資訊、元資料資訊。

storm程式設計模型(重要

中執行的乙個實時應用程式的名稱。(拓撲)

spout:在乙個

topology

中獲取源資料流的元件。   通常情況下spout會從外部資料來源中讀取資料,然後轉換為

topology

內部的源資料。

bolt:接受資料然後執行處理的元件

,使用者可以在其中執行自己想要的操作。

tuple:一次訊息傳遞的基本單元,理解為一組訊息就是乙個

tuple

stream:表示資料的流向。

流式計算一般架構圖(重要

l 其中flume用來獲取資料

l kafka用來臨時儲存資料

l strom用來計算資料

l redis是個記憶體資料庫,用來儲存資料

Storm核心元件介紹

nimbus 主控節點 用於接收,提交任務,來分配集群任務,集群的監控 zookeeper 儲存storm集群的資料儲存 心跳 集群狀態 nimbus任務分配到supervisor 分組策略 1 fields grouping 按照字段分組,相同字段傳送到同乙個task中 2 shuffle gro...

Storm核心元件 程式設計模型

storm簡介 storm是用來做實時計算的框架,所以介紹storm之前需要知道什麼是流式計算。流式計算 資料實時產生 資料實時傳輸 資料實時計算 實時展示 代表技術 flume實時獲取資料 kafka metaq實時資料儲存 storm jstorm實時資料計算 redis實時結果快取 持久化儲存...

storm核心元件

nimbus 負責資源分配和任務排程。supervisor 負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。通過配置檔案設定當前 supervisor 上啟動多少個 worker worker 執行具體處理元件邏輯的程序。worker執行的任務型別只有兩種,一種是spout...