Storm篇 Storm基礎概念

2022-03-03 18:33:29 字數 1662 閱讀 5778

一、前述

storm是個實時的、分布式以及具備高容錯的計算系統,storm程序常駐記憶體,storm資料不經過磁碟,在記憶體中處理。

二、相關概念

1.非同步:

流式處理(非同步)

客戶端提交資料進行結算,並不會等待資料計算結果。

2.同步:

實時請求應答服務(同步)

客戶端提交資料請求之後,立刻取得計算結果並返回給客戶端。

storm:(實時處理)

專門為流式處理設計

資料傳輸模式更為簡單,很多地方也更為高效

並不是不能做批處理,它也可以來做微批處理,來提高吞吐。

spark streaming:微批處理

將rdd做的很小來用小的批處理來接近流式處理

基於記憶體和dag可以把處理任務做的很快。

mapreduce:

storm:程序、執行緒常駐記憶體執行,資料不進入磁碟,資料通過網路傳遞。

mapreduce:為tb、pb級別資料設計的批處理計算框架。

4.storm 計算模型

topology – dag有向無環圖的實現(拓撲圖)

對於storm實時計算邏輯的封裝

即,由一系列通過資料流相互關聯的spout、bolt所組成的拓撲結構

生命週期:此拓撲只要啟動就會一直在集群中執行,直到手動將其kill,否則不會終止

(區別於mapreduce當中的job,mr當中的job在計算執行完成就會終止)。

tuple – 元組

stream中最小資料組成單元

stream – 資料流

從spout中源源不斷傳遞資料給bolt、以及上乙個bolt傳遞資料給下乙個bolt,所形成的這些資料通道即叫做stream

stream宣告時需給其指定乙個id(預設為default)

實際開發場景中,多使用單一資料流,此時不需要單獨指定streamid

spout – 資料來源

拓撲中資料流的**。一般會從指定外部的資料來源讀取元組(tuple)傳送到拓撲(topology)中

乙個spout可以傳送多個資料流(stream)

可先通過outputfieldsdeclarer中的declare方法宣告定義的不同資料流,傳送資料時通過spoutoutputcollector中的emit方法指定資料流id(streamid)引數將資料傳送出去

spout中最核心的方法是nexttuple,該方法會被storm執行緒不斷呼叫、主動從資料來源拉取資料,再通過emit方法將資料生成元組(tuple)傳送給之後的bolt計算

bolt – 資料流處理元件

拓撲中資料處理均有bolt完成。對於簡單的任務或者資料流轉換,單個bolt可以簡單實現;更加複雜場景往往需要多個bolt分多個步驟完成

乙個bolt可以傳送多個資料流(stream)

可先通過outputfieldsdeclarer中的declare方法宣告定義的不同資料流,傳送資料時通過spoutoutputcollector中的emit方法指定資料流id(streamid)引數將資料傳送出去

bolt中最核心的方法是execute方法,該方法負責接收到乙個元組(tuple)資料、真正實現核心的業務邏輯

storm基礎概念

以官網的結構圖為例子 storm用來幹什麼這裡就不說了,主要說下storm的一些基礎知識。官宣連線 原文翻譯 其實官方文件已經介紹的非常詳細了,這裡只是對某些比較晦澀的地方進行一些說明。storm 系統中包含以下幾個基本概念 拓撲 topologies 流 streams 資料來源 spouts 資...

Storm 核心概念

核心概念 topologies 拓撲,將整個流程串起來 計算拓撲,由spout和bolt組成 類似於mr作業 mr最終要完成,topology會一直執行除非自己殺死 對應的資源 topologybuilder running topologies on a production cluster lo...

Storm概念理解

組成 topology是storm裡的最高抽象概念,相當於hadoop裡的mapreduce,topology 流轉換圖 由spouts和bolts組成。spout建立stream,stream由無限的tuple 元組 構成。bolts接收spout流出的tuple並進行處理,處理後生成的新的tup...