解决集群长时间运行后无法正常关闭问题

Posted GaryLea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决集群长时间运行后无法正常关闭问题相关的知识,希望对你有一定的参考价值。

解决集群长时间运行后无法正常关闭问题

背景

  • 当前配置:hadoop版本为3.1.3
  • 我的集群运行了好几个月,因为业务数据的增长,之前的资源配置方案需要调整,当我修改了yarn-site.xml分发之后,使用stop-yarn.sh命令停止yarn时发现并没有停止yarn
  • 于是我将当前任务全部关闭,然后打算stop-all.sh关闭整个集群,竟然还是无法关闭,仿佛关闭命令不起作用

问题原因

因为linux默认会30天清理一次/tmp临时文件,而集群配置文件hadoop-env.sh中的默认pid存储位置就在这里,这就造成了因集群长时间运行后,无法正常找到集群的pid

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# Where pid files are stored.  /tmp by default.
#export HADOOP_PID_DIR=/tmp

解决方案

  1. 首先确保所有有关hadoop的任务全部关闭
  2. 使用jps查看集群的进程号
  3. 手动kill掉他们
  4. 修改hadoop-env.sh,制定pid保存在一个不会被清理的位置
  5. pid的位置记得修改其写入的权限才可以
  6. 重启集群即可

以上是关于解决集群长时间运行后无法正常关闭问题的主要内容,如果未能解决你的问题,请参考以下文章

解决集群长时间运行后无法正常关闭问题

长时间 Selenium 执行后 Chrome 关闭

java jdbc mysql连接器:长时间空闲后如何解决断开连接

长时间运行的Django进程可行吗?

很长时间后运行 gradle 任务失败

Python模拟浏览器实现用户响应