停止Hadoop时报no datanode to stop问题解决
来源:互联网 发布:网络笔试题 编辑:程序博客网 时间:2024/06/07 14:34
现象:当停止Hadoop的时候发现no datanode to stop的信息。
原因1:每次namenode format会重新创建一个namenodeId,而hadoop.tmp.dir下包含了上次format生成的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录。
这里有两种解决方案:
1)删除namenode上“dfs.namenode.name.dir”里面的内容
rm -rf /opt/hadoop/dfs/name/*
删除datanode上“dfs.datanode.data.dir”里面的内容
rm -rf /opt/hadoop/dfs/data/*
2)删除“hadoop.tmp.dir”下以“hadoop”开头的文件
rm -rf /apt/hadoop/tmp/hadoop*
3)重新格式化hadoop
hadoop namenode -format
4)启动hadoop
start-all.sh
这种方案的缺点是原来集群上的重要数据全没有了。因此推荐第二种方案:
1)修改每个Slave的namespaceID,使其与Master的namespaceID一致。
或者
2)修改Master的namespaceID使其与Slave的namespaceID一致。
Master的“namespaceID”位于“/opt/hadoop/dfs/name/current/VERSION”文件里面,Slave的“namespaceID”位于“//opt/hadoop/dfs/data/current/VERSION”文件里面。
原因2:问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux 默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。
在配置文件hadoop_env.sh中配置export HADOOP_PID_DIR可以解决这个问题。
在配置文件中,HADOOP_PID_DIR的默认路径是“/var/hadoop/pids”,我们手动在“/var”目录下创建一个“hadoop”文件夹,若已存在就不用创建,记得用chown将权限分配给hadoop用户。然后在出错的Slave上杀死Datanode和Tasktracker的进程(kill -9 进程号),再重新start-all.sh,stop-all.sh时发现没有“no datanode to stop”出现,说明问题已经解决。
原因1:每次namenode format会重新创建一个namenodeId,而hadoop.tmp.dir下包含了上次format生成的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录。
这里有两种解决方案:
1)删除namenode上“dfs.namenode.name.dir”里面的内容
rm -rf /opt/hadoop/dfs/name/*
删除datanode上“dfs.datanode.data.dir”里面的内容
rm -rf /opt/hadoop/dfs/data/*
2)删除“hadoop.tmp.dir”下以“hadoop”开头的文件
rm -rf /apt/hadoop/tmp/hadoop*
3)重新格式化hadoop
hadoop namenode -format
4)启动hadoop
start-all.sh
这种方案的缺点是原来集群上的重要数据全没有了。因此推荐第二种方案:
1)修改每个Slave的namespaceID,使其与Master的namespaceID一致。
或者
2)修改Master的namespaceID使其与Slave的namespaceID一致。
Master的“namespaceID”位于“/opt/hadoop/dfs/name/current/VERSION”文件里面,Slave的“namespaceID”位于“//opt/hadoop/dfs/data/current/VERSION”文件里面。
原因2:问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux 默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。
在配置文件hadoop_env.sh中配置export HADOOP_PID_DIR可以解决这个问题。
在配置文件中,HADOOP_PID_DIR的默认路径是“/var/hadoop/pids”,我们手动在“/var”目录下创建一个“hadoop”文件夹,若已存在就不用创建,记得用chown将权限分配给hadoop用户。然后在出错的Slave上杀死Datanode和Tasktracker的进程(kill -9 进程号),再重新start-all.sh,stop-all.sh时发现没有“no datanode to stop”出现,说明问题已经解决。
0 0
- 停止Hadoop时报no datanode to stop问题解决
- no datanode to stop
- hadoop2 no datanode to stop
- localhost: no datanode to stop
- hadoop 关闭时报 no namenode/nodemanager/XXXX to stop
- hadoop 关闭datanode节点时发生异常:no datanode to stop
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- hadoop stop-all.sh no namenode to stop解决方法
- 停止hadoop2.2.0时提示no namenode to stop
- stop-hbase.sh no zookeeper to stop because no pid file /tmp/hbase-hadoop-zookeeper.pid
- hadoop no xxxx to stop的原因和解决方法
- hadoop重启时,hdfs关闭不了,no namenode to stop
- 解决关闭Hadoop时no namenode to stop异常
- hadoop 问题| no datano to stop | kill -9 pid
- 关闭Hadoop时no namenode to stop异常
- 解决关闭Hadoop时no namenode to stop异常
- no xxx to stop
- 开始刷leetcode day9:Remove Duplicates from Sorted List
- 在Mac上显示隐藏文件
- ios客户端学习-UIButton
- 基于svn diff结果的有效代码量统计
- leetcode-27 Remove Element
- 停止Hadoop时报no datanode to stop问题解决
- Win7下QTP10破解
- .NET 线程池线程数
- App开发日报 2015-05-10 Sqaure内存泄露检测库试用
- NSString常用方法
- js浮点数问题
- Storm Metric
- 网络编程知识
- 递归函数实现n^k