Hadoop Mapreduce在访问主机上的datanode时返回错误

Hadoop Mapreduce在访问主机上的datanode时返回错误,hadoop,mapreduce,hive,Hadoop,Mapreduce,Hive,我设置了一个Hadoop 2.4.0集群,其中包含三台机器。一台主计算机部署有namenode、资源管理器、datanode和节点管理器。其他两台工作机使用datanode和node manager进行部署。运行配置单元查询时,工作失败,错误为 2014-06-11 13:40:13364 WARN[main]org.apache.hadoop.mapred.YarnChild:运行子项的异常:java.net.ConnectException:从master/127.0.0.1调用到 主机:4

我设置了一个Hadoop 2.4.0集群,其中包含三台机器。一台主计算机部署有namenode、资源管理器、datanode和节点管理器。其他两台工作机使用datanode和node manager进行部署。运行配置单元查询时,工作失败,错误为

2014-06-11 13:40:13364 WARN[main]org.apache.hadoop.mapred.YarnChild:运行子项的异常:java.net.ConnectException:从master/127.0.0.1调用到 主机:43607连接失败异常:java.net.ConnectException:connection>拒绝;有关更多详细信息,请参阅: 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:5>7) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImp>l.java:45) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:526) 位于org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:783) 位于org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:730) 位于org.apache.hadoop.ipc.Client.call(Client.java:1414) 位于org.apache.hadoop.ipc.Client.call(Client.java:1363) 在org.apache.hadoop.ipc.writeablerpcengine$Invoker.invoke上(writeablerpcengine.java:231) 位于com.sun.proxy.$Proxy9.getTask(未知源) 位于org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:136) 原因:java.net.ConnectException:连接被拒绝 在sun.nio.ch.socketchannel.checkConnect(本机方法) 位于sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) 位于org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 位于org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529) 位于org.apache.hadoop.net.NetUtils.connect(NetUtils.java:493) 位于org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:604) 位于org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:699) 位于org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) 位于org.apache.hadoop.ipc.Client.getConnection(Client.java:1462) 位于org.apache.hadoop.ipc.Client.call(Client.java:1381) ... 4更多

如果我禁用主机上的datanode,一切都会正常工作。我想知道是否允许在主计算机上部署datanode。提前感谢您的善意帮助

顺便说一句,这三台机器上的my/etc/hosts是相同的:

127.0.0.1本地主机

10.1.154.231主机

10.1.153.220从动件1

10.1.153.133从动件2


请将主机上的无密码ssh设置为自身

你可以通过

  cat ~/id_rsa.pub >> ~/.ssh/authorized_keys2 
确保权限正确

   chmod 0600 ~/.ssh/authorized_keys2

在这种情况下,您可以通过检查YourHadoop文件夹/logs/hadoop-[hadoop user]-namenode-master.log中的日志来检查namenode是否在主机上正确启动

这通常是由于hdfs以前没有格式化造成的。跑

hadoop namenode -format

当然,您需要再次将数据放入群集。

谢谢您的回复。我可以“ssh localhost”或“ssh master”无密码。此外,主服务器可以将ssh无密码发送给所有从属服务器,所有从属服务器可以将ssh无密码发送给主服务器。我在.ssh文件中使用了授权的\u密钥,而不是授权的\u密钥2。授权密钥的权限为0640。我仍然有错误。我肯定我找不到这个问题的提示。我的问题解决了。