【异常】Hadoop分布式集群之hadoop集群故障

问题一:

一键停止hdfs相关进程,主节点提示 no namenode to stop。

这里写图片描述

懵。。。。。
参考了一些资料,得出的结论是stop-dfs.sh找不到主节点的namenode的PID。pid是啥?就是输入jps命令后显示的进程号。各个进程的pid都默认保存在/tmp 目录下。
这里写图片描述

具体参考hadoop-daemon.sh中的信息。

这里写图片描述

这里写图片描述

大意就是找不到pid就打印 no namenode/datanode.. to stop。

ll /tmp
查看该目录下的文件。没有找到namenode对应的pid。

既然hadoop不知道关闭哪些进程,只能手动关闭了。
输入命令kill -9 进程号
再重启hadoop,查看/tmp目录,有对应的pid文件。

这里写图片描述

你以为这里就完了,太天真了。

~~~~~~我是分割线~~~~~~~~~~~~~分割线~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

各节点进程全部启动完毕,hdfs上传文件也执行成功,打开浏览器用 web UI 访问主节点的namenode情况。

这里写图片描述

???啥情况?

打开日志文件
这里写图片描述

50070端口被占用
lsof -i:50070
占用namenode的进程号就是输入jps指令后显示的进程号。查看/tmp目录下的namenode的pid文件,发现两个地方的pid不一致。

这里写图片描述

搜索了很多资料没有找到类似的情况,即使修改了pid文件的内容,执行在sbin/stop-dfs.sh的时候,仍然提醒no namenode to stop。

在各种尝试下,只想出了一种笨拙的方法。

1.sbin/stop-dfs.sh   //一键停止hdfs相关进程
2.kill -9 xxxx       //执行jps命令后的namenode进程号
3.rm -rf /home/hadoop/data/tmp/dfs/data //移除data目录下的datanode的数据文件
4.sbin/start-dfs.sh  //重新一键启动hdfs相关进程
5.cat /tmp/hadoop-hadoop-namenode.pid  //查看pid,与jps下的一致

打开浏览器

这里写图片描述

至此,问题终于解决。

问题二:

执行hdfs命令时报错:bash:hdfs:commond not found
出现这种错误,首先检查hadoop的环境变量配置是否正确

这里写图片描述

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值