no resourcemanager to stop

  • 问题描述:

虚拟机环境下,使用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目录下,

  1. 修改hadoop-env.sh,如果没有相关配置,可用直接添加
    export HADOOP_PID_DIR=/home/hadoop/pidDir
    export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/pidDir
    上述配置,影响
      NameNode
      DataNode
      SecondaryNameNode
    进程pid存储
  2. 修改mapred-env.sh
    export HADOOP_MAPRED_PID_DIR=/home/hadoop/pidDir
    上述配置,影响
      JobHistoryServer
    进程pid存储
  3. 修改yarn-env.sh
    export YARN_PID_DIR=/home/hadoop/pidDir
    上述配置,影响
      NodeManager
      ResourceManager
    进程pid存储
  4. 以上配置好后,启动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

你可能感兴趣的:(no resourcemanager to stop)