现象:
长时间启动hadoop后,使用stop-all.sh报 no namenode to stop,但使用jps发现namenode 确实存在
原因:
hadoop默认配置是将datanode,namenode,jobtracker,tasktracker,secondarynamenode的pid存放在/tmp目录下,但linux会定期清理/tmp目录,pid信息丢失导致
解决方法:
修改hadoop/conf/hadoop-env.sh文件中的HADOOP_PID_DIR
# export HADOOP_PID_DIR=${HADOOP_PID_DIR}
export HADOOP_PID_DIR=/opt/hadoop/pids
注:
1.pids目录要授予读写权限:chmod 775 -R /opt/hadoop/pids
2.不支持使用环境变量,使用$HADOOP_HOME/pids是会报错