-
问题描述:
虚拟机环境下,使用stop-yarn.sh和stop-dfs.sh停止yarn和hdfs时出现no resourcemanager to stop、no nodemanager to stop、no namenode to stop、no datanode to stop,但是相关进程都真实存在,并且可用
-
出现这个问题的原因:
当初启动的时候没有指定pid的存放位置,hadoop(hbase也是这样)默认会放在Linux的/tmp目录下,进程名命名规则一般是框架名-用户名-角色名.pid,而默认情况下tmp里面的东西,一天会删除一次,由于pid不存在,当执行stop相关命令的时候找不到pid也就无法停止相关进程,所以报no xxx to stop
-
解决方式:
当然就是手动指定pid的存放位置,避免放在/tmp目录下,
- 修改hadoop-env.sh,如果没有相关配置,可用直接添加
export HADOOP_PID_DIR=/home/hadoop/pidDir
export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/pidDir
上述配置,影响
NameNode
DataNode
SecondaryNameNode
进程pid存储 - 修改mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/home/hadoop/pidDir
上述配置,影响
JobHistoryServer
进程pid存储 - 修改yarn-env.sh
export YARN_PID_DIR=/home/hadoop/pidDir
上述配置,影响
NodeManager
ResourceManager
进程pid存储 - 以上配置好后,启动yarn和hdfs,启动成功后首先jps查看,ok,5个进程都在,然后cd /home/hadoop/pidDir目录下,有如下文件,完美
-rw-rw-r-- 1 hadoop hadoop 6 Mar 2 17:13 hadoop-hadoop-datanode.pid
-rw-rw-r-- 1 hadoop hadoop 6 Mar 2 17:13 hadoop-hadoop-namenode.pid
-rw-rw-r-- 1 hadoop hadoop 6 Mar 2 17:13 hadoop-hadoop-secondarynamenode.pid
-rw-rw-r-- 1 hadoop hadoop 6 Mar 2 17:13 yarn-hadoop-nodemanager.pid
-rw-rw-r-- 1 hadoop hadoop 6 Mar 2 17:13 yarn-hadoop-resourcemanager.pid
网友评论