Storm基礎介面

2021-06-20 21:34:40 字數 2269 閱讀 9445

storm 0.9的原始碼介面解釋:

package backtype.storm.task;

public inte***ce ibolt extends serializable

接收tuple

作為輸入,輸出

tuple

,可以用來作過濾,鏈結,聚合等。

ibolt提交到

nimbus

後,nimbus

將作業傳送到

worker

後,每個

task

初始化時都會呼叫prepare。

package backtype.storm.task;

public class topologycontext extends workertopologycontext implements imetricscontext

topologycontext向bolts 和spouts 提供」prepare」 and 」open」 方法。 topologycontext提供了元件的各種資訊,流的資訊,task的資訊等。

package backtype.storm.task;

public class shellspout implements ispout 

package backtype.storm.spout;

public class shellbolt implements ibolt 

storm可以用其它語言來實現

spout

和bolt

的功能,如

python

和ruby

。shellspout /shellbolt 採用乙個特別的協議,通過標準io和其通訊。

區別irichbolt

和ibasicbolt

irichbolt繼承自

ibolt

和icomponent

。ibasicbolt

繼承自icomponent

,和ibolt

沒有繼承關係。

實現irichbolt

的bolt

有:baserichbolt,clojurebolt,coordinatedbolt,keyedfairbolt,richshellbolt等。

實現ibasicbolt的有:basebasicbolt,identitybolt,preparebatchbolt等。

他們的區別在於irichbolt需要手動的

ack或

fail

訊息,若不

ack,很快就

outofmemory

了;而ibasicbolt

不需要確認訊息,自動完成。

看下面的outputcollector和basicoutputcollector。

outputcollector實現了ioutputcollector,方法有:emit,emitdirect,ack,fail。

basicoutputcollector實現了ibasicoutputcollector,方法有:emit,emitdirect,reporterror。

可以看到,outputcollector暴露了emit api給irichbolt,包括了ack

和fail

,用來對應訊息成功

/而basicoutputcollector沒有此api,

對應於ibasicbolt。

顧名思義,批處理的bolt,與

irichbolt

和ibasicbolt

也沒有繼承關係。這個bolt物件每次處理一批batch在一起的

tuples

。對於每乙個

tuple

呼叫execute

方法。而在整個

batch

處理完成的時候呼叫

finishbatch

方法。然後新來一批tuples,會產生新的

batchbolt

來處理。具體可以見:

和ibatchbolt對應的collector

事務性的bolt。

記住:繼承了basetransactionalbolt的class在

execute

方法中獲取

tuple

時,應從下標為

1開始獲取,第

0個為transactionattempt物件,為,用來記錄

tuples

重放時。因為事務性的

bolt

繼承了批處理的

bolt

,具體還是見ibatchbolt中關於事務性拓撲的鏈結。

Storm篇 Storm基礎概念

一 前述 storm是個實時的 分布式以及具備高容錯的計算系統,storm程序常駐記憶體,storm資料不經過磁碟,在記憶體中處理。二 相關概念 1.非同步 流式處理 非同步 客戶端提交資料進行結算,並不會等待資料計算結果。2.同步 實時請求應答服務 同步 客戶端提交資料請求之後,立刻取得計算結果並...

storm基礎概念

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

Storm 二 Storm集群部署

集群部署的基本流程 集群部署的基礎環境準備 storm集群部署 storm集群的常用操作命令 storm集群的程序及日誌檢視 注意 所有的集群上都需要配置hosts vi etc hosts 192.168.239.128 storm01 zk01 hadoop01 192.168.239.129 ...