本文适用于一些在网上找了半天答案都没解决问题的人群,因为我也是在按网上说道弄了一天,最后才解决的。如果你是刚遇到问题,还没有深入,建议你查看这篇文章 http://f.dataguru.cn/hadoop-208802-1-1.html 将问题一步一步排除后仍没有解决的话,可以试试我这个方法。如果还是不行,那就我也无能为力了,革命道路还很漫长,你仍需努力啊!!(笑哭)
问题描述:
它没有任何报错的信息,文件照常创建,但文件就是没有内容,打开是空的。唯一可疑的地方就是上传速度太慢了,一个只有几个字符的文件上传了40多秒。刚开始以为自己的笔记本太渣了。直到解决问题后。
如果你符合上述问题描述的话,那么恭喜,你应该找到了解决方案。
解决方案:
问题的根本就是你的防火墙没有关闭,说道这里有人会质疑,防火墙我早关了呀,没错防火墙你是关了,不然就不会访问到hadoop,但恰恰是这个原因,你忽略了大的问题,你只关了nameNode的防火墙,dataNode的防火墙你或许忘关了。这就导致了你能正常访问hadoop,但却无法上传文件内容。而等待的那40多秒时间 ,是因为它在不停的访问dataNode的ip但由于防火墙权限,一直不能访问成功。最后以失败告终,但空文件却生成在了nameNode上,所以就有了你现在所处的尴尬局面。
删除原来的空文件后重新上传代码。
问题解决,看看上传时间,只有不到三秒的时间,和以前相差十五倍的时间。
用浏览器访问看看,可以显示出详细信息。
注意:我这里连nameNode加上,用虚拟机一共只开了三台Linux,我将所有的防火墙都关了才解决的问题。