“could only be replicated to 0 nodes, instead of 1”解决办法
.
.
刚刚开始学习Hadoop,在执行其中一个例子://将Hadoop文件夹中的上级文件夹的input文件夹上传到Hadoop文件系统中,命令如下:
bin/hadoop dfs –put ../input in
但是执行了之后却提示could only be replicated to 0 nodes,instead of 1,最开始的时候是只能将input目录中的1个test1.txt上传过去,后来进行了重启Hadoop操作之后可以将两个test1.txt和test2.txt都上传到Hadoop了,但是发现高兴的早了,因为两个文件的大小都为0,明明我向里面写数据了,但是上传之后都变成了0的大小,之后上网搜罗了半天试了好多,最终将问题解决,从几方面给大家提醒:
1、使用jps命令,查看Datanode是否启动了,如果没有启动成功,进入Hadoop的存放数据节点的data目录(比如我的目录是usr/hadoop-0.20.2/data),将其中的所有文件删除(这样保证了下次启动Hadoop的时候Datanode可以启动起来),因为有可能是保留了以前不兼容的数据。
2、关闭Hadoop:bin/stop-all.sh;
3、关闭防火墙: chkconfig iptables on/off //机器永久生效
service iptables start/stop //机器当次生效,重启失效
4、启动Hadoop:bin/start-all.sh;
我的问题就这样解决了,但是有可能还不行的话,就在启动之前格式化一下Hadoop:
bin/hadoop dfs -format