StormBolt介面
Bolt是Topology中資料處理的基本單元,也是Storm針對處理過程的程式設計單元。Topology中所有的處理都是在這些bolt中完成的。 Bolt可以將資料項傳送至多個資料流(Stream)。程式設計人員首先可以使用OutputFieldsDeclarer類的declareStream()方法宣告多個流,指定資料將要傳送到的流,然後使用SpoutOutputCollector的emit方法將資料傳送(原生spout)。
Storm為Bolt提供的程式設計抽象,以介面的形式,面向介面的程式設計風格。其中IRichBolt是使用Java語言實現Bolt最主要的介面。事實上,IRichBolt本身並未提供更多屬性或方法,只是擴充套件了(extends)另外兩個介面IBolt和IComponent。
IRichBolt是使用Java語言實現Bolt最主要的介面,擴充了(extends)另外兩個介面IBolt和IComponent.。介面包含的方法有prepare(in stormConf,in context,in collector):void,execute(in tuple) :void,cleanup():void。最重要的方法是execute(),該方法接收一個資料項作為輸入。Bolt可以將處理後的結果作為新的Tuple,使用OutputCollector物件的emit()方法傳送。Bolt可以在OutputCollector中對每一個傳送資料項呼叫ack()方法,使得storm能夠追溯這個資料項是否被完整處理。
IBolt和IComponent介面
1、prepare()與cleanup() void prepare(java.util.Map.stormConf,TopologyContext context,OutputCollector collector)
prepare()用於例項化Bolt的一個執行時任務,被叢集中某一程式呼叫,提供Bolt執行的環境。prepare()方法三個引數:stormConf,context,collector.
(1)sotrmConf物件維護Storm中針對該Bolt的配置資訊。這些配置資訊是Topology提供的,被叢集中執行該Bolt的機器使用。
(2)context上下文物件,用於獲取該元件執行時任務的資訊。
(3)collector物件用於從該Bolt傳送資料項。
2、execute()
該方法用於Bolt從Topology中接收一個資料項(Tuple),並可以將處理的結果作為新的資料項傳送(emit),是Bolt需要實現的最重要的方法。這個方法的引數input是一個資料項物件,它包含了眾多的後設資料(metadata),包括它來自的元件、流、任務等。資料項中的值,可以通過Tuple類的getValue()方法獲得。處理結果的傳送是通過在prepare()方法中提供的OutputCollector物件,呼叫emit方法實現。
3、IBasicBolt和BaseBasicBolt
在許多場景下Bolt的資料處理,都需要確認處理完成或認定失敗。需要程式碼emit資料和呼叫ack/fail。Storm提供了另一個用來實現Bolt的介面IBasicBolt,用於該介面的實現類,會在執行execute方法之後自動呼叫ack方法。
相關文章
- 介面卡模式(類介面卡,物件介面卡,介面介面卡)模式物件
- Lock介面之Condition介面
- API介面------外部介面和內部介面區別API
- java 介面,介面的特性,介面實現多型,面向介面程式設計Java多型程式設計
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- 『居善地』介面測試 — 2、介面和介面文件概念
- 介面卡模式(類介面卡 物件介面卡)模式物件
- 什麼是介面?如何定義介面?如何實現介面?
- 介面
- 介面測試--介面文件規範
- 1688商品詳情資料介面、商品列表介面,商品屬性介面、商品優惠券介面
- 淘寶商品詳情介面(商品銷量介面,商品列表介面,商品影片介面)程式碼展示
- RPC介面和http介面的區別RPCHTTP
- 開啟系統介面/軟體介面
- Java 自學 - 介面與繼承 介面Java繼承
- 視窗介面設計規範:介面關閉方式及介面疊加
- 介面供應商提供的AG介面BB IN介面對接文件demo教程
- 2.4 介面
- Collection介面
- AddUserDao介面
- TS — 介面
- TS 介面
- go介面Go
- MutationObserver 介面Server
- ImportSelector介面Import
- TypeScript 介面TypeScript
- 介面1
- Serializable介面
- 介面3
- IO介面
- dubbo介面
- 流式介面
- ElasticSearch介面Elasticsearch
- thingsboard 介面
- interface/介面
- RandomAccess介面randomMac
- 淘寶拍立淘介面,圖片搜尋介面,圖片識別介面,以圖搜貨介面,按圖搜尋介面程式碼教程
- 介面自動化之介面整理(抓包)
- 【重磅介面】免費、熱門API介面集合API