显示报错no tasktracker to stop ,no datanode to stop 问 题的原因是:hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每 隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop- hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。 在配置文件中$HADOOP_HOME/conf/hadoop-env.sh中export HADOOP_PID_DIR=${HADOOP_HOME}/pids可以解决这个问题