怎么停止和重新启用hadoop的DataNode
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么停止和重新启用hadoop的DataNode相关的知识,希望对你有一定的参考价值。
首先建立一个excludes文件.它是一个文本, 里面每行就是想要停掉的主机名.这里excludes 放在 $HADOOP_HOME下例如
CS02
CS03
CS04
CS05
CS06
CS07
CS08
CS09
CS10
这样就表明要把9台机器给停了.
然后在conf/hadoop-site.xml添加这样的属性:
<property>
<name>dfs.hosts.exclude</name>
<value>excludes</ value>
</property>
做完这步, 用bin/hadoop dfsadmin -refreshNodes命令更新结点以及hadoop配置
然后你可以通过 bin/hadoop dfsadmin -report 就可以查看到类似这样的信息:
Name: 192.168.0.86:50010
State : Decommission in progress
Total raw bytes: 30452150272 (28.36 GB)
Remaining raw bytes: 17727606637(16.51 GB)
Used raw bytes: 6480990208 (6.04 GB)
% used: 21.28%
Last contact: Thu Nov 27 02:25:40 CST 2008
Name: 192.168.0.89:50010
State : Decommissioned
Total raw bytes: 0 (0 KB)
Remaining raw bytes: 0(0 KB)
Used raw bytes: 4703211520 (4.38 GB)
% used: ∞%
Last contact: Thu Jan 01 08:00:00 CST 1970
可以看到86在停止中, 89已经停止了.
在没停止之前, mapreduce会拒绝操作. 会出异常的 参考技术A 1 停掉集群 2 把slave机和master机上那个tmp.dir路径下的数据清空(有可能是因为你在上一次namenode -format之前忘了删除slave的数据导致的) 3 重新hadoop namenode -format 4 重新启动hadoop集群
Hadoop错误解决:执行jps后没有DataNode
参考技术A 这个问题,一般由于多次格式化NameNode导致。第一步:停止hadoop:
stop-dfs.sh
第二步:删除所有名字为dfs的文件夹,我这里有以下两个文件夹,分别删除两次:
rm -r ./tmp/dfs/
rm -r ./app/tmp/dfs/
第三步:格式化HDFS:
./bin/hdfs namenode -format
第四步:重启hadoop:
start-dfs.sh
参考资料:
以上是关于怎么停止和重新启用hadoop的DataNode的主要内容,如果未能解决你的问题,请参考以下文章