首页 文章

Hadoop守护进程没有停止

提问于
浏览
3

我试图通过./stop-all.sh脚本停止hadoop中的守护进程,但它给出了以下消息:

没有jobtracker停止localhost:没有tasktracker停止没有namenode停止localhost:没有datanode停止localhost:没有secondarynamenode停止

我试着看看hadoop是否在使用jps之后运行,它显示:

27948 SecondaryNameNode 27714 NameNode 28136 TaskTracker 27816 DataNode 28022 JobTracker 8174 Jps

也就是说,它正在正常运行所有守护进程 . 我还检查了hadoop dfs -ls /,看看我能否连接到hdfs . 它正在发挥作用 .

我正在按超级用户的意思运行stop-all.sh脚本,没有权限问题 .

1 回答

  • 4

    如果启动/停止脚本找不到$ HADOOP_PID_DIR文件夹中的pid文件(默认为/ tmp),则会显示此消息 .

    如果:

    • 这些文件已被删除(由某人或某事),或

    • 自启动deamons后,env变量$ HADOOP_PID_DIR已更改,或

    • 用户停止deamons不是启动它们的用户

    然后hadoop将显示您看到的错误消息 .

    hadoop-daemon.sh文件中的选定部分(适用于1.0.0):

    #   HADOOP_IDENT_STRING   A string representing this instance of hadoop. $USER by default
    
    if [ "$HADOOP_IDENT_STRING" = "" ]; then
      export HADOOP_IDENT_STRING="$USER"
    fi
    
    # ....
    
    if [ "$HADOOP_PID_DIR" = "" ]; then
      HADOOP_PID_DIR=/tmp
    fi    
    
    # ....
    
    pid=$HADOOP_PID_DIR/hadoop-$HADOOP_IDENT_STRING-$command.pid
    
    # ....
    
    (stop)
    
      if [ -f $pid ]; then
        if kill -0 `cat $pid` > /dev/null 2>&1; then
          echo stopping $command
          kill `cat $pid`
        else
          echo no $command to stop
        fi
      else
        echo no $command to stop
      fi
      ;;
    

相关问题