Storm常見模式——BasicBolt

來源:互聯網
上載者:User

Storm中的很多Bolt都有一個最常見的處理步驟:

  1. 讀入一個tuple;
  2. 根據這個輸入tuple,提取後發射0個,1個或多個tuple;
  3. 最後,通過ack操作確認這個tuple被成功處理。

按照上述處理步驟,依次處理髮向這個Bolt的各個tuple元組。

這種模式可以實現像ETL這類的簡單函數或過濾器功能,Storm中專門為這種模式封裝了相應介面:IBasicBolt。BaseBasicBolt等類實現了這一介面。

下面是以BaseBasicBolt為基礎,按照上述模式實現詞頻統計的Bolt(代碼參考連結:storm-starter):

public static class WordCount extends BaseBasicBolt {     //記錄每個單詞及單詞出現的次數        Map<String, Integer> counts = new HashMap<String, Integer>();        @Override        public void execute(Tuple tuple, BasicOutputCollector collector) {            String word = tuple.getString(0);            Integer count = counts.get(word); //提取單詞出現次數            if(count==null)         count = 0;            count++;            counts.put(word, count); //更新單詞出現次數            collector.emit(new Values(word, count)); //發射統計結果        }        @Override        public void declareOutputFields(OutputFieldsDeclarer declarer) {       declarer.declare(new Fields("word", "count"));        }    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.