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

时间:2014-06-11 19:17:21

标签: hadoop mapreduce hive

我用三台机器建立了一个Hadoop 2.4.0集群。使用namenode,资源管理器,datanode和节点管理器部署一台主机。其他两台工作机器使用datanode和节点管理器进行部署。当我运行Hive查询时,工作失败,错误是

  

2014-06-11 13:40:13,364 WARN [main] org.apache.hadoop.mapred.YarnChild:异常运行子:java.net.ConnectException:从master / 127.0.0.1调用   master:43607连接异常失败:java.net.ConnectException:Connection> rejected;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:5>7)          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImp> l.java:45)          at 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.WritableRpcEngine $ Invoker.invoke(WritableRpcEngine.java:231)          在com.sun.proxy。$ Proxy9.getTask(未知来源)          在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:136)   引起:java.net.ConnectException:连接被拒绝          at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)          at 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。感谢您提前给予的帮助。

BTW,三台机器上的/ etc / hosts是相同的:

  

127.0.0.1 localhost

     

10.1.154.231 master

     

10.1.153.220 slave1

     

10.1.153.133 slave2

2 个答案:

答案 0 :(得分:1)

请在您的主人自身上设置无密码ssh。

您可以通过

实现这一目标
  cat ~/id_rsa.pub >> ~/.ssh/authorized_keys2 

确保权限正确

   chmod 0600 ~/.ssh/authorized_keys2

答案 1 :(得分:0)

在这种情况下,您可以通过检查yourhadoopfolder / logs / hadoop- [hadoop-user] -namenode-master.log

中的日志来检查主节点上是否正确启动了namenode。

它通常是由hdfs之前未格式化引起的。运行

hadoop namenode -format

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