TEZ 资源不释放问题分析
Last updated
Was this helpful?
Last updated
Was this helpful?
TEZ 资源不释放问题分析
YARN UI 显示 APP 还在运行,但是任务实例已经显示成功。
首先怀疑是我们后台进程异常,导致runner进程挂了,但是beeline进程还在 通过后台进程关键字确认: 任务实例runner 结束,对应beeline 进程不存在
确认任务实例日志中没有明显异常信息,beeline 进程正常结束,beeline 标准输出有success 关键字
YARN UI 查询 container 001 (AM container)
通过RM 日志找到001 号container 执行节点
在datanode 通过APPid 过滤三个进程,其中孙子进程(267609)应该就是不结束原因
查看进程信息中log.dir 指定目录
如下:
通过异常日志关键字 ,我们确认是因为Timer line server保存到日志太多,导致timer server处理am 请求超时,所以am 一直在重试,但是这个时候am 对应到app 状态已经变更为成功,客户端已经退出,却遗留了一个app的尾巴
确认app 其他container 正常结束的情况下,通过异常日志确认业务逻辑已经执行成功,但是状态同步异常,可以直接终止死循环的session 进程。如执行 kill -9 267609
终止session进程之后,RM 会拉起另一个(02号)AM 继续执行。状态同步一次之后会忽略异常,使得02 AM 结束退出。
修改TEZ 在hive server 节点 /etc/tez/conf/tez-site.xml 文件如下内容
对应value 替换为 org.apache.tez.dag.history.logging.impl.SimpleHistoryLoggingService