部署了集群,上传测试文件到HDFS文件系统的时候出现问题。could only be replicated to 0 nodes, instead of 1,如下图所示:
度娘寻找解决方案:
博客链接:http://www.cnblogs.com/linjiqin/archive/2013/03/13/2957310.html
改博客指出,该产生该异常的原因如下:
1.系统或hdfs是否有足够的空间
这个肯定是有的,测试数据,才几十KB,可以用hadoop dfsadmin -report查看报告,也可以直接去web查看大小。localhost:50070
2.datanode数是否正常
主节点Namenode、JobTracker等进程都在,所有的从节点均有Datanode、TaskTracker进程,所以应该排除
3.是否在safemode
Web上可以看见safemode off,表明安全模式关闭。如果非要用命令查看,可以使用dfsadmin -safemode get 查看是否开启安全模式。如果是安全模式,可以用dfsadmin -safemode leave强制离开安全模式。
4.防火墙是否关闭
ubuntu上关闭防火墙的命令是ufw disabled,我的集群早就关闭了。
5.关闭hadoop、格式化、重启hadoop
没有办法的办法,但是非常抱歉,对于我的问题没有起到任何作用。
最终的解决方案:
原来是自己学艺不精,linux没有学扎实,这么常见的错误我都没看穿。hadoop所在的目录已经快用完空间了,所以报这个错误,我修改了core-site.xml中DFS的地址,指向了有多余空间的目录,重新格式化HDFS,跑案例,成功。
此错误终结。