背景Hadoop正常启动,所有服务:namenode,datanode,jobtracker,tasktracker都正常启动运行。且执行hadoop其他命令如-ls,-rm,-mkdir等都正常运行。就是执行hadoop fs -put test.txt input命令时失败。

注:namenode主机ip:192.168.101.135

问题描述

  1. namenode节点日志(hadoop-hadoop-namenode-NameNode.log),出错信息:IOException:File /user/hadoop/input/test1.txt could only be replicated to 0 nodes,instead of 1

  2. datanode和tasktracker日志,出错信息:call to Namenode/192.168.101.135:9000 failed on local exception:java.net.NoRouteToHostException:没有到主机的路由

原因

  1. hdfs文件系统出现异常;

  2. 防火墙问题;

解决方法

  1. 文件系统异常:停止hadoop--> 把配置文件core-site.xml中选项 hadoop.tmp.dir指定目录(此处为/home/hadoop/hadoop/tmp)下的所有文件***-->重新格式化hadoop-->启动;

  2. 防火墙问题:停止hadoop-->关闭master和namenode所有节点上的防火墙-->重新启动hadoop;



关闭防火墙需切换至root用户,命令如下(centOs)

/etc/init.d/iptables stop