今天中午收到了一个报警邮件通知。内容大致为:有一个正在 yarn
上运行的flink
的实时任务挂掉了。
针对上述的现象,我们的开发工程师先打开yarn
的web ui
找到对应的job
的任务页面。查询任务日志。
点击这个log
,找不到任何日志。那么很显然,这个任务的container
已经没了,日志已经找不到了。
引出问题:日志怎么会消失?
Finished
这一栏可以看到,这个任务在什么时候结束运行的,从上图得知,这个任务是在Wed Nov 16 12:58:09 +0800 2022
挂掉的。Node
栏对应的机器ip
(在上面的图片中我打码了,这个机器是yarn
的一个node
节点,请根据自己的环境来分析)Node
节点,然后检查该节点的NodeManager
的日志,目前我用的环境是cdh
,所以我可以在cloudera manager
管理界面上查看到对应的NodeManager
的角色日志,找到Finshed
时间对应的日志,日志如下:cdh
的给出来的官方文档检查了一下:exitCode=255
似乎看不出来什么原因。container
找不到用户scb
。带着这段信息去搜索了一下,得到如下链接:https://community.cloudera.com/t5/Support-Questions/Getting-user-not-found-issue-when-starting-spark-job/td-p/278090id 用户名
来查询用户名是否oksssd
工具,导致当时运行程序的container
容器的那台机器的用户名受到了影响。导致程序运行失败,container
容器启动失败被清理掉了。sssd
导致了container
找不到用户名其实诊断信息就写在这里
最后,通过该问题的探究经历,经验+1。如果各位大佬有什么更好的建议,请在评论区里留言。谢谢~