丢失节点上的Hadoop容器清理超时

时间:2016-05-14 14:16:56

标签: java hadoop mapreduce yarn

我正在研究多节点群集,其中有四个从属节点,名为slave01,slave02,slave03和slave04,一个主节点作为主节点

当我在map任务期间删除网线时,hadoop等待状态更新100秒(由于其值为100000的属性)

之后我可以看到maptask失败并且hadoop启动容器清理需要10分钟以上而且它也没有在任何地方安排失败的任务。我得到错误的无路由从主机应用程序主机到托管异常丢失节点。在另一个节点上执行哪个任务。

我希望减少尝试容器清理的时间,以便在任何节点上的maptask超时之后安排任务。

请帮我说明如何通过设置配置来实现。

我正在附加应用程序主日志,其中我在map任务期间删除了slave01,在这种情况下,还没有运行reduce任务的是。

AttemptID:attempt_1463201584280_0004_m_000002_0 100秒后超时丢失的节点上的容器清空容器容器错误_1463201584280_0004_01_000004:java.net.NoRouteToHostException:无从slave02 / 172.31.132.107到slave01的主机路由:58838套接字超时异常失败:java.net.NoRouteToHostException:没有到主机的路由;有关更多详细信息,请参阅:http://wiki.apache.org/hadoop/NoRouteToHost at sun.reflect.GeneratedConstructorAccessor51.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor。 java:422)org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:757)org.apache.hadoop.ipc .Client.call(Client.java:1473)org.apache.hadoop.ipc.Client.call(Client.java:1400)org.apache.hadoop.ipc.ProtobufRpcEngine $ Invoker.invoke(ProtobufRpcEngine.java:232 )位于sun.reflect.GeneratedMethodAccessor18的org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.stopContainers(ContainerManagementProtocolPBClientImpl.java:110)的com.sun.proxy。$ Proxy37.stopContainers(未知来源)。在java.lang.reflect.Method.invoke上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)调用(未知来源)方法.java:497)org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)at com的org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)位于org.apache.hadoop.mapreduce.v2的org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl $ Container.kill(ContainerLauncherImpl.java:206)的.sun.proxy。$ Proxy38.stopContainers(未知来源) .app.launcher.ContainerLauncherImpl $ EventProcessor.run(ContainerLauncherImpl.java:373)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java) :617)at java.lang.Thread.run(Thread.java:745)引起:java.net.NoRouteToHostException:在sun.nio的sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)中没有到主机的路由。 org.apache上的org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)中的ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) .hadoop.net.NetUtils.connect(NetUtils.java:530)org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)org.apache.hadoop.ipc.Client $ Connection.setupConnection(Client .java:608)org.apache.hadoop.ipc.Client $ Connection.setupIOstreams(Client.java:706)org.apache.hadoop.ipc.Client $ Connection.access $ 2800(Client.java:369)at org org.apache.hadoop.ipc.Client.call上的.apache.hadoop.ipc.Client.getConnection(Client.java:1522)(Client.java:1439)... 15更多

1 个答案:

答案 0 :(得分:0)

这是因为hadoop 2.6.3中的一个错误,其中连接重试在两个级别完成,ipc和yarn尝试使用2.6.4或下载补丁它将得到解决。

相关问题