在使用stop-dfs.sh、stop-mapred.sh、stop-all.sh、hadoop-deame.sh脚本关闭某个服务时,
经常汇报:“no xxxxNode to stop”
以下是解答
http://nourlcn.ownlinux.net/2012/06/no-namenode-to-stop-error-in-hadoop.html
[quote]为什么会这样呢?
因为Hadoop用来保存进程id的文件默认是在/tmp目录下,而/tmp会被系统定期清理,这样stop-all.sh或stop-dfs.sh的时候就有可能找不到namenode的进程pid。不能正常关闭namenode。
如何解决呢?
重新定义pid文件的存放位置:在启动hadoop的用户.bashrc内或者hadoop/conf/hadoop-env.sh内增加配置:
export HADOOP_PID_DIR=/home/hadoop/pids
这样就OK了。
网上很多帖子说执行hadoop namenode -format,然后重启hadoop,这是错误的做法。这样直接格式化DFS,导致丢失数据。[/quote]
经常汇报:“no xxxxNode to stop”
以下是解答
http://nourlcn.ownlinux.net/2012/06/no-namenode-to-stop-error-in-hadoop.html
[quote]为什么会这样呢?
因为Hadoop用来保存进程id的文件默认是在/tmp目录下,而/tmp会被系统定期清理,这样stop-all.sh或stop-dfs.sh的时候就有可能找不到namenode的进程pid。不能正常关闭namenode。
如何解决呢?
重新定义pid文件的存放位置:在启动hadoop的用户.bashrc内或者hadoop/conf/hadoop-env.sh内增加配置:
export HADOOP_PID_DIR=/home/hadoop/pids
这样就OK了。
网上很多帖子说执行hadoop namenode -format,然后重启hadoop,这是错误的做法。这样直接格式化DFS,导致丢失数据。[/quote]