全文共10789字,阅读约需3min。
如果你运维过一个大数据集群,你就能够明白内存对于集群主节点来说是一种稀缺资源,特别是集群越大,机器内存问题给集群带来的问题就越明显且越频繁。
在我管理的这么多大数据集群中,该问题现象就层出不穷。下面对其中一次现象进行了总结。
问题现象
1) 一台主机无缘无故死机;
2) 其上namenode服务无响应其发生准备切换。
问题排查思路是:
接收到主机网络不通告警;
接收到其上namenode服务STOP告警;
查看备节点是否成功切换为主节点;
查看zkfc日志确定failover原因;
重启(如果需要)故障主机,备份日志,启动nn服务,查看主机日志确认主机故障原因。
其实正确的处理问题路径是:重启主机->启动nn->查看日志定位原因。这里不对问题处理思路作深究,仅重点阐述本案中主机死机的原因。
主机死机,一般是要查看/var/log/message
日志,发现提示
echo 0> /proc/sys/kernel/hung_task_timeout_secs
完整的日志如下:
Mar 28 03:12:47 namenode01 collectd[1731]: write_graphite plugin: send to epc-graphite-server:2003 (tcp) failed with status 110 (Connection timed out)
Mar 28 03:12:47 namenode01 collectd[1731]: Filter subsystem: Built-in target `write': Dispatching value to all write plugins failed with status -1.
Mar 28 03:12:47 namenode01 collectd[1731]: Filter subsystem: Built-in target `write': Some write plugin is back to normal operation. `write' succeeded.
Mar 28 03:14:31 namenode01 kernel: INFO: task kworker/15:2:22246 blocked for more than 120 seconds.
Mar 28 03:14:31 namenode01 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Mar 28 03:14:31 namenode01 kernel: kworker/15:2 D ffff88208618bdd8 0 22246 2 0x00000080
Mar 28 03:14:31 namenode01 kernel: ffff88208618bbf0 0000000000000046 ffff8828e3130000 ffff88208618bfd8
Mar 28 03:14:31 namenode01 kernel: ffff88208618bfd8 ffff88208618bfd8 ffff8828e3130000 ffff88208618bd60
Mar 28 03