码迷,mamicode.com
首页 > 其他好文 > 详细

数据模型(Data Model)

时间:2015-05-26 19:05:57      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:storm   超人学院   hadoop   

数据模型(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")); } } 

declareOutputFields方法定义要输出的字段 : ["double", "triple"]。这个bolt的其它部分我们接下来会解释。

更多精彩内容请关注:http://bbs.superwu.cn 

关注超人学院微信二维码:技术分享


数据模型(Data Model)

标签:storm   超人学院   hadoop   

原文地址:http://crxy2013.blog.51cto.com/9922445/1655353

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!