storm开发总结【二】
来源:互联网 发布:淘宝qq飞车包车 编辑:程序博客网 时间:2024/04/30 11:46
这一部分来讲讲实际开发中,Spout与Bolt模块的开发。
一、spout
Spout的开发一般会采用继承自BaseRichSpout。需要重写以下函数:
public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {}
在Spout启动时运行,一般做一些初始化操作,比如数据库的连接等等。
public void nextTuple(){}
会被循环调用,利用SpoutOutputCollector的emit函数发送new Values,用以产生一条tuple。注意,nextTuple要求是非阻塞的。
public void declareOutputFields(){}
用于定义nextTuple()发送的的tuple的字段名。
public void close(){}
用于在Spout关闭时做一些断开连接的操作,比如关闭数据库连接。
二、bolt
Bolt的开发一般会继承BaseRichBolt和BaseBasicBolt类。这两个类的区别之一是,当需要做Ack和Fail操作的时候,BaseBasicBolt会自动处理,不用使用者重写。
这里介绍一下BaseBasicBolt
public void prepare(Map stormConf, TopologyContext context){}
Bolt初始化时调用。
public void execute(Tuple input, BasicOutputCollector collector){}
收到一条tuple时调用,传入参数input,同时可以利用collector来发送新tuple。
public void declareOutputFields(OutputFieldsDeclarer declarer) {}
定义execute发送的tuple的字段名,与发送的Values一一对应。
- storm开发总结【二】
- storm开发总结【一】
- storm开发总结【三】
- storm 开发系列二 Clojue版本
- 二十七、开发第一个storm任务
- Kafka-storm的开发错吴总结
- Storm总结
- storm总结
- Storm开发
- 在Storm中使用C++开发Bolt总结
- Window7安装开发Storm遇到的错误总结
- python开发总结二
- python开发总结 二
- python开发总结二
- Android 开发总结二
- Storm初认识(二)
- Storm学习笔记二
- Storm 集群配置(二)
- heuristic manner
- Web Service RESTful
- iOS面试题系列:
- C#序列化(Serialize)、反序列化(Deserialize)
- session与cookie的区别
- storm开发总结【二】
- 正则表达式逗号分隔 (c++)
- C++基础学习笔记(1):C++中的操作符
- openfire+asmock实现消息推送
- DB2必须了解的常用命令及技巧(转)
- 长按鼠标事件js
- Binary Tree Inorder Traversal
- PHP array_pad() 函数
- 【转载】《MySQL入门很简单》学习笔记