"管道破损"异常会取消我的工作吗?



目前我正在使用144个TaskSlots在4台机器的远程集群上运行Flink程序。在运行了大约30分钟后,我收到了以下错误:

信息org.apache.flink.runtime.jobmanager.web.JobManagerInfoServlet-信息jobmanager的服务器:无法为作业编写json更新b2eaff8539c8c9b696826e69fb40ca14,因为org.eclipse.jety.io.RuntimeIO异常:org.eclipse.jety.io.EofException位于org.eclipse.jjetty.io.UncheckedPrintWriter.setError(UncheckedPrinteWriter.java:107)在org.eclipse.jjetty.io.UncheckedPrintWriter.write(UncheckedPrintedWriter.java:280)在org.eclipse.jjetty.io.UncheckedPrintWriter.write(UncheckedPrintedWriter.java:295)在org.apache.flink.runtime.jobmanager.web.JobManagerInfoServlet.writeJsonUpdatesForJob(JobManagerInfoServlet.java:588)在org.apache.flink.runtime.jobmanager.web.JobManagerInfoServlet.doGet(JobManagerInfoServlet.java:209)位于位于的javax.servlet.httpHttpServlet.service(HttpServlet.java:847)org.eclipse.japty.servlet.ServletHolder.handle(ServletHolder.java:532)在org.eclipse.japty.servlet.ServletHandler.doHandle(ServletHandler.java:453)在org.eclipse.jjetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)在org.eclipse.jjetty.server.handler.ContextHandler.doHandle(ContextHandler.java:965)在org.eclipse.japty.servlet.ServletHandler.doScope(ServletHandler.java:388)在org.eclipse.jjetty.server.session.SessionHandler.doScope(SessionHandler.java:187)在org.eclipse.jjetty.server.handler.ContextHandler.doScope(ContextHandler.java:901)在org.eclipse.jjetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)在org.eclipse.jjetty.server.handler.HandlerList.handle(HandlerList.java:47)在org.eclipse.jjetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)网址:org.eclipse.jjetty.server.handle(server.java:352)org.eclipse.jjetty.server.HttpConnection.handleRequest(HttpConnection.java:596)在org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048)网址:org.eclipse.jjetty.HttpParser.parseNext(HttpParser.java:549)在org.eclipse.jjetty.HttpParser.parseAvailable(HttpParser.java:211)在org.eclipse.jjetty.server.HttpConnection.handle(HttpConnection.java:425)在org.eclipse.jjetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:489)在org.eclipse.jjetty.util.thread.QueuedThreadPool$2.run(QueuedTthreadPool.java:436)在java.lang.Thread.run(Thread.java:745)由以下原因引起:org.eclipse.jety.io.EofException位于org.eclipse.jjetty.HttpGenerator.flushBuffer(HttpGenerator.java:905)在org.eclipse.jjetty.http.AbstractGenerator.flash(AbstractGenerator.java:427)在org.eclipse.jjetty.server.HttpOutput.flash(HttpOutput.java:78)org.eclipse.jetty.server.HttpConnection$Output.flash(HttpConnection.java:1139)在org.eclipse.jjetty.server.HttpOutput.write(HttpOutput.java:159)org.eclipse.jjetty.server.HttpOutput.write(HttpOutput.java:86)java.io.ByteArrayOutputStream.writeTo(ByteArrayOututStream.java:154)网址:org.eclipse.jjetty.server.HttpWriter.write(HttpWriter.java:258)org.eclipse.jjetty.server.HttpWriter.write(HttpWriter.java:107)org.eclipse.jjetty.io.UncheckedPrintWriter.write(UncheckedPrintedWriter.java:271)…还有24个原因:java.io.IOException:处的管道破裂sun.nio.ch.FileDispatcherImpl.write0(本机方法),位于sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)sun.nio.ch.IUtil.writeFromNativeBuffer(IOUtil.java:93)位于sun.nio.ch.IUtil.write(IOUtil.java:51)sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)org.eclipse.jjetty.io.nio.ChannelEndPoint.flash(ChannelEndPoint.java:185)在org.eclipse.jjetty.io.nio.SelectChannelEndPoint.flash(SelectChannelEndPoint.java:256)在org.eclipse.jjetty.HttpGenerator.flushBuffer(HttpGenerator.java:849)…还有33个

我知道java.io.IOException: Broken pipe意味着JobManager失去了某种连接,所以我想整个作业都失败了,我必须重新启动它。虽然我认为这个进程不再运行,但WebInterface仍然将其列为正在运行。此外,当我使用jps来识别集群上正在运行的进程时,JobManager仍然存在。所以我的问题是,我的工作是否丢失了,这个错误有时是否随机发生,或者是我的程序造成的

编辑:我的任务经理仍然每隔几秒钟发送一次心跳,并且似乎正在运行。

这实际上是Flink的web服务器JobManagerInfoServlet的问题,因为java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method),它无法将请求作业的最新JSON更新发送到您的浏览器。因此,只有对服务器的GET请求失败。

这样的失败不应影响当前正在运行的Flink作业的执行。只需刷新浏览器(使用Flink的web UI)就可以发送另一个GET请求,然后有望成功完成。

相关内容

  • 没有找到相关文章

最新更新