背景
hadoop搭建完成,namenode format完成,start-all.sh成功。namenode与datanode均启动成功。
./hdfs dfs -mkdir -p /data/hdfs/input完成
但是,
奇怪的事情发生了:
./hdfs dfs -put test.txt /data/hdfs/input失败;
排查思路
实在是不懂hadoop,继续老套路,网上查资料,发现了以下几种可能:
1.多次format namenode,导致namenode的namespaceID和datanode的dataspaceID不一致;
查看发现了一个更神奇的现象:
master的/hdfs/name文件夹有current文件夹;node的/hdfs/data文件中什么都没有; datanode明明已经启动了T_T。
于是./stop-all.sh 再删除/hdfs/name/中所有内容,重新格式化,启动。发现没任何改变。排除该可能。
2.防火墙未关闭
想了一下,master的防火墙还未做任何处理,应该是有端口没开放,查看进程占用了哪些端口,全部开放
将以上端口全部加入防火墙规则,重启,node的/hdfs/data文件夹出现了current文件夹;(主要是9000端口,ResourceManage的端口还不清楚干嘛用的,后面熟悉以后再补充)
但是./hdfs dfs -put test.txt /data/hdfs/input还是失败,最后发现还是防火墙问题,node的防火墙有端口未开放;
将node的50010端口开放。
终于成功了,阿西吧!
网友评论