Storm集群模式下cleanup解决方法
来源:互联网 发布:java工程师创业 编辑:程序博客网 时间:2024/05/22 07:06
背景
由于cleanup方法并不可靠,它只在local mode下生效,Storm集群模式下cleanup不会被调用执行。很多资源得不到释放解决方案
在kill topology之前,先deactivate相应的topology。在spout中实现deactivate()方法,deactivate()方法中给bolt emit特殊的数据(如:emit “shutDown”字符串给bolt),bolt中判断接收的数据为”shutDown”就调用cleanup()方法。在cleanup()方法中释放需要释放的资源。流程图
相关代码
spout重写deactivate()方法代码如下:
@Override public void deactivate(){ LOGGER.info("deaactivate to spout and bolt"); try { //storm deactivate时发一条消息给bolt collector.emit(new Values("shutDown")); } catch (Exception e) { e.printStackTrace(); } }
bolt中execute()方法代码如下:
@Override public void execute(Tuple input) { String message = input.getStringByField("loan_message"); //判断是不是spout的deactivate传过来的消息 if("shutDown".equals(message )) { cleanup(); } }
注意事项: deactivate topology时,建议等待时间尽量长,时间过短消息来不及处理,会导致数据丢失
1 0
- Storm集群模式下cleanup解决方法
- cluster模式下storm kill topology时做cleanup的解决方法
- 大数据_Storm_cluster模式下storm kill topology时做cleanup的解决方法
- 大数据_Storm_cluster模式下storm kill topology时做cleanup的解决方法
- Storm集群的DRPC模式
- storm-0.8.2集群模式安装部署
- Storm Trident DRPC C/S 集群模式
- mac下的storm本地集群搭建
- centos7环境下搭建storm集群
- CentOS7环境下搭建storm集群
- 【storm】storm集群安装
- storm笔记:storm集群
- storm 集群
- SVN无法cleanup解决方法
- svn cleanup 失败解决方法
- svn cleanup 失败解决方法
- "svn cleanup failed"解决方法
- 007-storm开发计数程序集群模式运行
- 推荐机制
- Android性能优化之布局篇(二)
- <Linux> VIM 命令
- Zookeeper常用命令
- 重入锁ReentrantLock
- Storm集群模式下cleanup解决方法
- 内存四区
- 日中「家」制度の比較
- python 在中英切换中遇到的编码问题 cv2 os.sys
- 由于磁盘空间不够导致redis,zookeeper,kafka,storm死掉的解决方法
- 线程
- 线性表的链式存储与实现
- get方式请求转码
- Template模式