误删/tmp导致hadoop无法启停, jps无法查看的解决方法

问题描述

我的hadoop版本是hadoop-cdh4.2.0,由于误删了/tmp目录(不是hadoop.tmp.dir设定的那个目录),在Namenode,SecondaryNamenode和Datanode上使用jps无法查看到如下结果:

[root@desktop1 ~]# jps
5389 NameNode
5980 Jps
5710 ResourceManager
7032 JobHistoryServer
[root@desktop2 ~]# jps
3187 Jps
3124 SecondaryNameNode
[root@desktop3 ~]# jps
3187 Jps
3124 DataNode
5711 NodeManager

同时,在namenode上,启停dfs和yarn都无效,显示 no namenode to stop, no datanode to stop 等等。而整个hadoop集群是正常运转的。

排查原因

jps查看起的进程需要读取/tmp目录下的一些内容。另一方面,在启停hadoop的脚本里,比如

sbin/stop-yarn.sh

实际使用的是

sbin/yarn-deamon.sh

该脚本描述里写道:

# Runs a yarn command as a daemon.
#
# Environment Variables
#
#   YARN_CONF_DIR  Alternate conf dir. Default is ${YARN_HOME}/conf.
#   YARN_LOG_DIR   Where log files are stored.  PWD by default.
#   YARN_MASTER    host:path where hadoop code should be rsync'd from
#   YARN_PID_DIR   The pid files are stored. /tmp by default.
#   YARN_IDENT_STRING   A string representing this instance of hadoop. $USER by default
#   YARN_NICENESS The scheduling priority for daemons. Defaults to 0.

根据 YARN_PID_DIR   The pid files are stored. /tmp by default.
/tmp目录保存的是pid的进程号,集群无法启停,jps无法查看进程都是因为丢失了pid,或者与/tmp下当前的pid进程号对不上,我的解决方法就是查看各节点上的进程然后替换pid文件里的内容,实施后证明是可行的

解决方案

使用netstat查看pid进程号,

ps -ef | grep datanode | grep -v grep

namenode查看namenode和resourcemanager,/tmp下文件为hadoop-root-namenode.pid和 yarn-root-resourcemanager.pid

secondarynamenode查看secondarynamenode,/tmp下文件为hadoop-root-secondarynamenode.pid

datanode查看datanode和nodemanager,/tmp下文件为hadoop-root-datanode.pid和yarn-root-nodemanager.pid

(以上root为user名字)

下面是我使用的替换datanode机器上的pid的一个脚本,可以参考使用

> /tmp/hadoop-root-datanode.pid && echo `ps -ef | grep datanode | grep -v grep | awk '{print $2}'` > /tmp/hadoop-root-datanode.pid
> /tmp/yarn-root-nodemanager.pid && echo `ps -ef | grep nodemanager | grep -v grep | awk '{print $2}'` > /tmp/yarn-root-nodemanager.pid 

所有机器上都更新好pid文件后,就可以去namenode上启停集群了,jsp命令也生效了。

(全文完)

时间: 2024-08-09 05:03:54

误删/tmp导致hadoop无法启停, jps无法查看的解决方法的相关文章

导致adb无法启动的5种情况和解决方法_Android

1.adb server is out of date.  killing... 解决方法:各种重启(电脑.eclipse) 2.查看端口是否被占用 :输入命令adb nodaemon server 3.查找占用端口的进程:netstat -ano | findstr "5037"  或者 netstat -a -o 5037 4.杀死该进程tasklist /fi "pid eq ****" 或者使用任务管理器结束进程 5.一般都是qq.豌豆荚.91等手机助手导致

SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证 方式是Windows身份验证 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了 假设我们遇到很糟糕的情况 sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadm

ora-00054表被lock导致资源忙等待不能操作的原因及解决方法

数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi 操作系统平台:HP-UX 告警日志: more   alert_mdsoss.log 2.定位问题 报错现象: ORA-00054: resource busy acquire with nowait specified        资源忙 协成日志报错:SQL ERR :insert into table GNTCPCNN12082015     不能

使用win8.1系统自带修复导致系统自带Metro应用无法打开的解决方法

  通常情况下当我们的win8系统出现问题时候,我们大多数会通过使用Windows系统中自带的修复工具对系统进行诊断修复,来解决系统中存在的问题,不过有些用户在使用了该功能以后,出现windows8系统自带的功能无法正常打开的问题,对于出现该问题是什么原因造成的呢?我们应该如何解决,下面看小编为大家带来的分析! 解决方法 这问题可能是由于系统盘下ProgramFiles文件夹的文件遭到无法修复的破坏,建议尝试更换账户使用,如果还不行只能先做系统备份,然后做系统恢复或者重装系统了. 如果不能更改账

安装Office软件后导致win7旗舰版系统运行变慢的解决方法

  1.首先将win7系统电脑上运行的所有程序退出,接着"Win+R"打开"运行"程序,输入"regedit"命令后按回车; 2.然后在打开的注册表编辑器窗口中,依次展开以下注册项HKEY_LOCAL_MACHINESoftwareMicrosoftOffice 9.0 Find Fast; 3.在右侧窗口空白处鼠标右击,新建一个类型为DWORD值的SlowDown键,键值设置为十进制大于1000,小于10000的值,比如设置2000,保存后退出

使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法_javascript技巧

如下 复制代码 代码如下: <div style="width:100px;height:100px;background:gold"></div> 用IE开发者工具,或IE8自带的开发者工具.结构如 图1 : 红色所圈之处可以看到给div添加的内联样式width,height,background都依次排列.正常! 但给该div添加filter:alpha(opacity=20)后, 复制代码 代码如下: <div style="filter:

tomcat在opensuse下开机自启失败的原因分析及解决方法_unix linux

环境•opensuse 10.2•tomcat 5.5 设置信息在/etc/init.d/boot.local中添加如下命令:/opt/tomcat/bin/startup.sh 错误描述opensuse启动完毕后,tomcat一直没启动. 分析1. 系统启动完毕后,手动启动tomcat可以成功,说明不是权限的问题.2. 查找系统日志(/var/log/boot.msg),找到了如下信息: Neither the JAVA_HOME nor the JRE_HOME environment va

hadoop 日常错误解决方法整理

hadoop 日常错误整理   ====描述 hive 执行show tables;  Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V 解决方法 hive的版本是0.13.0太高,hadoop的版本较低. hadoop中没有对应的方法.降低hive的版本到0.11.0 ====描述 hive 的s

SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

原文:SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法 SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,