JSTORM 问题排查
## 运行时topology的task列表中报"task is dead"错误
有几个原因可能导致出现这个错误:
1. task心跳超时,导致nimbus主动kill这个task所在的worker
2. task对应的 bolt/spout 中的open/prepare/execute/nextTuple等,没有对异常做try...catch,导致抛出异常,导致task挂掉。**这里要注意一下,一个worker中任意一个task如果没有做异常处理,会导致整个worker挂掉,会导致该worker中其他task也报Task is dead**,所以在jstorm的应用代码中,**强烈建议在所有的方法中都加上try...catch**。
具体排查可以这么来做:
1. 如果task是每隔4分钟左右有规律地挂掉,那么基本可以确定是task心跳超时导致的,可以直接跳到3
2. 查看worker日志,在挂掉的时间点是否有异常。但是注意要看挂掉的那个worker的日志,而不是重新起来之后新的worker的日志,因为worker重新起来之后可能位于不同的机器上。
3. 如果worker日志没有异常,那么可以看一下集群nimbus的日志,搜一下:"Update taskheartbeat",然后找到挂掉的worker所对应的topology Id,看看最后更新心跳的时间是什么时候。对比一下task心跳超时的配置(nimbus.task.timeout.secs),如果worker挂掉的时间 - 最后一次更新心跳的时间 > task心跳超时,那么基本上可以确定是因为task心跳超时被kill了。这有几种可能:
* 执行队列被阻塞了,一直没有返回;
* worker发生了FGC,这会导致正常的线程都被停住,从而导致心跳超时。这时要查看一下对应的GC日志,看那个时间点附近有没有FGC;
* worker/task抛出了未处理的异常,如OutOfMemoryError之类的
* 最后也有可能是worker一直没起来, worker心跳超时
JSTORM 问题排查的更多相关文章
- RocketMQ,JStorm与Tair使用笔记
关于RocketMQ 启动mq nohup sh mqnamesrv -n 10.150.0.94:9876 & nohup sh mqbroker -n 10.150.0.94:9876 ...
- JSTORM使用笔记
安装部署 zeromq 简单快速的传输层框架,安装如下: wget http://download.zeromq.org/zeromq-2.1.7.tar.gztar zxf zeromq-2.1.7 ...
- Tomcat shutdown执行后无法退出进程问题排查及解决
问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...
- myrocks复制中断问题排查
背景 mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛.随着SSD逐渐普及,硬件存储成本越来越高,面向写优化 ...
- Java线上应用故障排查之一:高CPU占用
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题. 根据top命令,发现PID为28555的Java进程占 ...
- wordpress插件bug排查后记(记一次由于开启memecached引起的插件bug)
这篇文章是写给自己的. 周三的时候我在维护公司的一个wordpress项目页面时发现了一个非常奇怪的情况:当我尝试更新网站上的一个页面后,在wordpress后台的编辑器中发现其内容并没有按我预期的将 ...
- [AlwaysOn Availability Groups]AG排查和监控指南
AG排查和监控指南 1. 排查场景 如下表包含了常用排查的场景.根据被分为几个场景类型,比如Configuration,client connectivity,failover和performance ...
- mysql半同步复制问题排查
1.问题背景 默认情况下,线上的mysql复制都是异步复制,因此在极端情况下,主备切换时,会有一定的概率备库比主库数据少,因此切换后,我们会通过工具进行回滚回补,确保数据不丢失.半同步复制则 ...
- 数据库实战案例—————记一次TempDB暴增的问题排查
前言 很多时候数据库的TempDB.日志等文件的暴增可能导致磁盘空间被占满,如果日常配置不到位,往往会导致数据库故障,业务被迫中断. 这种文件暴增很难排查,经验不足的一些运维人员可能更是无法排查具体原 ...
随机推荐
- Message小结(一)
一.消息版本 为了区别消息的结构和寻址机制,W3C定制了SOAP1.1和SOAP1.2定义消息的结构,WS-Addressing 2004和WS-Addressing 1.0定义消息的寻址机制. ...
- jquery select change下拉框选项变化判断选中值
<th class="formTitle"> 是否转出: </th> <td class="formValue" colspan= ...
- python学习之老男孩python全栈第九期_数据库day002知识点总结 —— MySQL数据库day2(全部)
一. 复习1. MySQL: - 服务端 - 客户端2. 通信交流 - 授权 - SQL语句 - 数据库 创建数据库: create database db1 default charset utf8 ...
- HTML之列表
列表有三种类型: 有序列表:列表项使用数字来标记 无序列表:列表项使用粗体圆点(典型的小黑圆圈)进行标记. 自定义列表:自定义列表以 <dl> 标签开始.每个自定义列表项以 <dt& ...
- elastic job will never fire
1. 描述 2018-08-20 18:11:01.912 [Thread-8] INFO org.quartz.impl.StdSchedulerFactory - Using default i ...
- 关于CSRF跨域请求伪造的解决办法
中秋节时候我们的应用在短信验证码这块被恶意刷单,比如被用来做垃圾短信之类的,如果大规模被刷也能造成不小的损失.这还只是短信验证码,如果重要的API遭到CSRF的攻击,损失不可估量.所以紧急加班解决了C ...
- CF 827E Rusty String FFT
传送门 如果没有碍事的?的话,判定字符串的循环节直接用KMP的失配数组就可以搞定.现在有了碍事的?,我们就需要考虑更通用的算法. 考虑KMP失配数组判定字符串循环节的本质,发现判定\(k\)是否为字符 ...
- 177. [USACO Jan07] 有限制的素数
177. [USACO Jan07] ★ 输入文件:qprime.in 输出文件:qprime.out 简单对比 时间限制:1 s 内存限制:128 MB Farmer John 开始 ...
- ios移动端禁止双指缩放功能
在实际开发中,我们禁止缩放的实现方式: 1.meta设置: <meta name="viewport" content="width=device-width,h ...
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug
这几天eclipse 项目迁移 android studio Error:Execution failed for task ':app:transformClassesWithJarMergingF ...