Storm之Bolt-接口
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Storm之Bolt-接口
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                IBolt: ?
? ? ? ? bolt接口類(lèi),定義了常用的幾個(gè)接口,IBolt的實(shí)現(xiàn)類(lèi)在client上被創(chuàng)建,然后序列化到拓?fù)淅锊⒈惶峤坏郊旱膍aster上,之后nimbus會(huì)啟動(dòng)worker進(jìn)行反序列化,調(diào)用prepare進(jìn)行準(zhǔn)備完畢之后就開(kāi)始處理tuples
? ? ? ? 如果是在java里定義bolts ,建議實(shí)現(xiàn)IRichBolt.java接口類(lèi),IRichBolt.java同時(shí)繼承了IComponent.java接口,提供了更多對(duì)拓?fù)溥M(jìn)行操作的方法。
/*** 當(dāng)集群中的worker初始化一個(gè)跟當(dāng)前Bolt相關(guān)的task時(shí)候被調(diào)用,此方法提供和準(zhǔn)備bolt執(zhí)行時(shí)的環(huán)境.* @param stormConf 此bolt使用的storm配置,合并了本機(jī)和集群的配置,將會(huì)提供給topology* @param context task的上下文,可以獲取taskId,componentId,input,output等* @param collector 用于任意時(shí)刻提交bolt里的tuples,collector是線程安全的,應(yīng)當(dāng)保存在Bolt里.*/ void prepare(Map stormConf, TopologyContext context, OutputCollector collector); /*** 處理單個(gè)輸入的tuple* 這里面使用OutputCollector來(lái)提交tuples.* 官方建議所有的輸入tuples在處理完之后進(jìn)行ack或者fail,否則storm無(wú)法判斷該tuples是否被處理完畢* 一般使用IBasicBolt,在execute方法中額外提供了outputCollector,會(huì)更加方便處理* @param input*/ void execute(Tuple input); /*** Bolt關(guān)閉的時(shí)候被調(diào)用,由于是被supervisor使用kill 9干掉的,所以并不保證cleanup會(huì)被執(zhí)行*/ void cleanup();IComponent.java
IRichBolt.java
總結(jié)
以上是生活随笔為你收集整理的Storm之Bolt-接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: Swift - 17 - 数组的初始化
- 下一篇: iOS学习7:iOS沙盒(sandBox
