unable kill namenode 从解决到放弃再到解决的过程

问题描述

在学习部署hadoop的过程中,我发现一个问题,正常来说我们安装完成,会通过以下命令启动hdfs,观察是否安装成功。

sh 复制代码
start-dfs.sh

这个时候通过jps命令,就能观察到本地的namenode, secondary namenode ,datanode正在运行。

但是有那么一天,我想要用到hadoop的环境来执行spark。照例我先用jps观察了一下运行是否正常。结果发现一个异常现象。

我的环境中只有namenode和secondary namenode 但是没有datanode。

一开始我没有特别重视这个问题,寻思可能datanode挂了,我重启下就行了。结果一重启,重启出事故了。

接下来,我开始了长达三个小时的折磨之旅。

踩坑流程

据伟大的先辈们流传,以及多年来实践的经验。如果你遇到什么没见过的问题,遇事不决,重启解决。 是最高效,便捷的处理方式。

js 复制代码
stop-dfs.sh

按照正常流程,我通过以上命令,首先停掉hadoop,然后就不出所料的报错了

sh 复制代码
[hadoop@dave hadoop]$ stop-dfs.sh
Stopping namenodes on [dave]
dave: Warning: Permanently added 'dave' (ECDSA) to the list of known hosts
dave: ERROR: Unable to kill 18452
Stopping datanodes
localhost: ERROR: Unable to kill 19132
Stopping secondary namenodes [dave]
dave: ERROR: Unable to kill 19311

这种时候,我还没有慌,这都是小问题,我不知道遇到过多少次。按照,管理我将动用我的root权限,并使用kill -9将这两个进程全部杀死。然后完成我的重启大业。

但是它又报错了!这个情况是非常不合理的。

sh 复制代码
[root@dave hadoop]# kill -9 18452
bash: kill: (18452) - No such process
[root@dave hadoop]# sudo kill -9 18452
kill: sending signal to 18452 failed: No such process

root权限 ,kill -9 这两个加起来,我能把系统给他干废了,结果一个小小的hadoop线程竟然干不掉。

而且通过ps明显看不到这两个线程。

也就是说,一个不存在的进程,阻止了我关闭hdfs! 正常来说,在windows中,我遇到这种现象,我直接重装系统了。但是linux显然不好进行这样的操作。

上次出现这种情况,还是在我的服务器被脚本入侵用来挖矿时。

我按照上次被入侵时的流程走了一遍,发现没有任何被挖矿的迹象。但是按照之前的处理方案处理了一下。

然并卵。

这个时候,我得承认,我慌了。

去网上寻求相关问题的答案,结果这个问题遇到的人非常少,然后非常不幸的是,我还看到一个哥们被干破防了。

unable kill namenode hadoop3.0.3 解决到放弃解决的过程_51CTO博客_hadoop的namenode宕机怎么解决

事实上,这个时候我也想放弃了,但是还是在网上漫无目的的找一些资料,看看datanode的进程的底层原理。当然,看的头昏脑胀也没什么解决思路。

解决方案

不过最后灵感突发,还是给各位找到了一个解决方案。原理我不是很明晰,但是确实能关闭hdfs,然后正常启动了。

参考这篇博客Hadoop 在linux上的部署全流程 - 掘金 (juejin.cn),我在末尾留下了一个解决datanode未启动问题的解决思路。

因为我没有指定hadoop 的 tmp目录,所以直接进去系统的tmp目录,这个时候你会看到只有一个namenode的pid文件,把它删除。

然后关闭dfs成功,启动df成功。完美解决,正常启动。

ps:当时没有截正常启动的图,就只有这两张图。

我现在也复现不出来这个bug,也没有理清这个解决问题的原理,不过还是希望能给各位解决这个问题提供思路。

相关推荐
鶴哥只手遮天3 小时前
《rustc 内幕》第 1 章 全景:rustc 编译流水线与 crate 版图
后端·rust·开源
starzy19904 小时前
深入理解Scala隐式值:编译期自动装配
开发语言·后端·scala
say_fall5 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
装不满的克莱因瓶5 小时前
设计模式之策略模式核心概念和应用场景
java·后端·设计模式·架构·系统架构·策略模式
ö Constancy5 小时前
一台电脑的硬件组成与作用:按功能分类详解(Windows 与 Linux 视角)
linux·windows·电脑
江湖有缘6 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
特立独行的猫A12 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
无奈笑天下14 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
码事漫谈15 小时前
我花了一周时间,看AI公司怎么"管"AI,结果越看越后背发凉
后端
爱学习的程序媛17 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架