數據模型(Data Model)

數據模型(Data Model) 
storm使用tuple來做爲它的數據模型。每一個tuple是一堆值,每一個值有一個名字,而且每一個值能夠是任何類型, 在個人理解裏面一個tuple能夠看做一個沒有方法的java對象。整體來看,storm支持全部的基本類型,字符串以及字節數組做爲tuple的值類 型。你也能夠使用你本身定義的類型來做爲值類型, 只要你實現對應的序列化器(serializer)。 
topology裏面的每一個節點必須定義它要發射的tuple的每一個字段。 好比下面這個bolt定義它鎖發射的tuple包含兩個字段,類型分別是: doble和triple。 

publicclass DoubleAndTripleBolt implements IRichBolt { private OutputCollectorBase _collector;      @Override  
publicvoid prepare(Map conf, TopologyContext context, OutputCollectorBase collector){ 
        _collector = collector; } 
     @Override  
publicvoid execute(Tuple input){ int val = input.getInteger(0); 
        _collector.emit(input, new Values(val*2, val*3));         _collector.ack(input); } 
     @Override  
publicvoid cleanup(){ } 
     @Override  
publicvoid declareOutputFields(OutputFieldsDeclarer declarer){         
declarer.declare(new Fields("double", "triple")); } } 
java

declareOutputFields方法定義要輸出的字段 : ["double", "triple"]。這個bolt的其它部分咱們接下來會解釋。web

更多精彩內容請關注:http://bbs.superwu.cn 數組

關注超人學院微信二維碼:微信

相關文章
相關標籤/搜索