开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink在第一个Sink失败的情况下 导致 在switch 有遇到过嘛?

Flink在第一个Sink失败的情况下 导致 在switch source算子运行状态 从running变成 cancelling 失败
报错 是因为 ResultSet.close()方法阻塞住了, 然后超过 task.cancellation.timeout 设置的时间 taskmanager就宕机了 有大佬遇到过嘛?Source(Mysql ) -> filter -> Sink(Mysql)
-> filter -> SinkWARN org.apache.flink.runtime.taskmanager.Task [] - Task 'DataSource (PFFF7AF61-7336-EF96-F823-31CE49B07791) (1/1)#0' did not react to cancelling signal - interrupting; it is stuck for 30 seconds in method:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
java.net.SocketInputStream.read(SocketInputStream.java:171)
java.net.SocketInputStream.read(SocketInputStream.java:141)
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:100)
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:143)
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:173)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2911)
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3382)
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3322)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3762)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1928)
com.mysql.jdbc.RowDataDynamic.nextRecord(RowDataDynamic.java:378)
com.mysql.jdbc.RowDataDynamic.next(RowDataDynamic.java:358)
com.mysql.jdbc.RowDataDynamic.close(RowDataDynamic.java:158)
com.mysql.jdbc.ResultSetImpl.realClose(ResultSetImpl.java:6703)
com.mysql.jdbc.ResultSetImpl.close(ResultSetImpl.java:848)
*.close(RDBInputFormat.java:433)
org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:207)
org.apache.flink.runtime.taskmanager.Task$$Lambda$671/731154499.run(Unknown Source)
org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:948)
org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:927)
org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:741)
org.apache.flink.runtime.taskmanager.Task.run(Task.java:563)
java.lang.Thread.run(Thread.java:745)

展开
收起
真的很搞笑 2024-01-09 12:35:22 137 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于在第一个Sink失败后,Flink尝试关闭ResultSet时阻塞了。你可以尝试增加task.cancellation.timeout的值来解决这个问题

    2024-01-09 14:21:27
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载