背景:Hadoop正常啓動,所有服務:namenode,datanode,jobtracker,tasktracker都正常啓動運行。且執行hadoop其他命令如-ls,-rm,-mkdir等都正常運行。就是執行hadoop fs -put test.txt input命令時失敗。
注:namenode主機ip:192.168.101.135
問題描述:
namenode節點日誌(hadoop-hadoop-namenode-NameNode.log),出錯信息:IOException:File /user/hadoop/input/test1.txt could only be replicated to 0 nodes,instead of 1
datanode和tasktracker日誌,出錯信息:call to Namenode/192.168.101.135:9000 failed on local exception:java.net.NoRouteToHostException:沒有到主機的路由
原因:
hdfs文件系統出現異常;
防火牆問題;
解決方法:
文件系統異常:停止hadoop--> 把配置文件core-site.xml中選項 hadoop.tmp.dir指定目錄(此處爲/home/hadoop/hadoop/tmp)下的所有文件***-->重新格式化hadoop-->啓動;
防火牆問題:停止hadoop-->關閉master和namenode所有節點上的防火牆-->重新啓動hadoop;
關閉防火牆需切換至root用戶,命令如下(centOs)
/etc/init.d/iptables stop