Bolt的生命周期
来源:互联网 发布:广州程序员工资水平 编辑:程序博客网 时间:2024/06/08 18:10
1、在定义Topology实例过程中,定义好Spout实例和Bolt实例
2、在提交Topology实例给Nimbus的过程中,会调用TopologyBuilder实例的createTopology()方法,以获取定义的Topology实例。在运行createTopology()方法的过程中,会去调用Spout和Bolt实例上的declareOutputFields()方法和getComponentConfiguration()方法,declareOutputFields()方法配置Spout和Bolt实例的输出,getComponentConfiguration()方法输出特定于Spout和Bolt实例的配置参数值对。Storm会将以上过程中得到的实例,输出配置和配置参数值对等数据序列化,然后传递给Nimbus。
3、在Worker Node上运行的thread,从Nimbus上复制序列化后得到的字节码文件,从中反序列化得到Spout和Bolt实例,实例的输出配置和实例的配置参数值对等数据,在thread中Spout和Bolt实例的declareOutputFields()和getComponentConfiguration()不会再运行。
4、在thread中,反序列化得到一个Bolt实例后,它会先运行Bolt实例的prepare()方法,在这个方法调用中,需要传入一个OutputCollector实例,后面使用该OutputCollector实例输出Tuple
5、接下来在该thread中按照配置数量建立task集合,然后在每个task中就会循环调用thread所持有Bolt实例的execute()方法
6、在关闭一个thread时,thread所持有的Bolt实例会调用cleanup()方法
不过如果是强制关闭,这个cleanup()方法有可能不会被调用到
参考文献:
[1]https://storm.apache.org/apidocs/backtype/storm/task/IBolt.html
2、在提交Topology实例给Nimbus的过程中,会调用TopologyBuilder实例的createTopology()方法,以获取定义的Topology实例。在运行createTopology()方法的过程中,会去调用Spout和Bolt实例上的declareOutputFields()方法和getComponentConfiguration()方法,declareOutputFields()方法配置Spout和Bolt实例的输出,getComponentConfiguration()方法输出特定于Spout和Bolt实例的配置参数值对。Storm会将以上过程中得到的实例,输出配置和配置参数值对等数据序列化,然后传递给Nimbus。
3、在Worker Node上运行的thread,从Nimbus上复制序列化后得到的字节码文件,从中反序列化得到Spout和Bolt实例,实例的输出配置和实例的配置参数值对等数据,在thread中Spout和Bolt实例的declareOutputFields()和getComponentConfiguration()不会再运行。
4、在thread中,反序列化得到一个Bolt实例后,它会先运行Bolt实例的prepare()方法,在这个方法调用中,需要传入一个OutputCollector实例,后面使用该OutputCollector实例输出Tuple
5、接下来在该thread中按照配置数量建立task集合,然后在每个task中就会循环调用thread所持有Bolt实例的execute()方法
6、在关闭一个thread时,thread所持有的Bolt实例会调用cleanup()方法
不过如果是强制关闭,这个cleanup()方法有可能不会被调用到
参考文献:
[1]https://storm.apache.org/apidocs/backtype/storm/task/IBolt.html
0 0
- Bolt的生命周期
- Storm中Spout和Bolt的生命周期
- 大数据_Storm_Spout 与 bolt 的生命周期
- Storm bolt/spout生命周期
- Storm可靠的Bolt与不可靠的Bolt
- 一个bolt接收spout和另一个bolt的tuple
- Bolt引擎内置的元对象介绍
- storm的bolt实现阶段统计
- Bolt接口各个方法的执行顺序
- Storm的Spout和Bolt中的方法
- BOLT UI界面引擎是如何工作的?(BOLT UI入门教程)
- Storm——可靠的与不可靠的Bolt
- Bolt界面引擎元对象(UIObject)的动态创建
- storm中supervisor, task, worker, spout, bolt之间的关系
- Storm DRPC 使用及访问C++ Bolt问题的解决方法
- 基于BOLT的仿迅雷加速器界面开发(一)
- 基于BOLT的仿迅雷加速器界面开发(二)
- strom中worker、task、spout/bolt、executor、component的关系
- Spring+ibatis出现ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
- 关于数据输入之先输入int数值在输入string的一些小问题
- js块元素和内联元素的种种恩怨
- 非常有用的 Oracle 查询语句
- rabbitMQ重启提示发生系统错误 5。 拒绝访问。
- Bolt的生命周期
- ckeditor 中文api
- iOS6新特征:UICollectionView介绍
- 慕课第四次学习总结
- Intent打开其它文件的使用
- 写入Memcache时是否应该压缩值?
- HTTP请求出错(no resource): Android4.0不能在主线程中进行HTTP请求
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir .
- angular学习