数据流作业卡在从 Pub/Sub 读取
Posted
技术标签:
【中文标题】数据流作业卡在从 Pub/Sub 读取【英文标题】:Dataflow job stuck at reading from Pub/Sub 【发布时间】:2021-03-21 18:31:54 【问题描述】:我们的SDK版本是Apache Beam Python 3.7 SDK 2.25.0
有一个管道可以从 Pub/Sub 读取数据,对其进行转换并将结果保存到 GCS。 通常它可以正常工作 1-2 周。之后就卡住了。
"Operation ongoing in step s01 for at least 05m00s without outputting or completing in state process
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at org.apache.beam.runners.dataflow.worker.fn.data.RemoteGrpcPortWriteOperation.maybeWait(RemoteGrpcPortWriteOperation.java:175)
at org.apache.beam.runners.dataflow.worker.fn.data.RemoteGrpcPortWriteOperation.process(RemoteGrpcPortWriteOperation.java:196)
at org.apache.beam.runners.dataflow.worker.util.common.worker.OutputReceiver.process(OutputReceiver.java:49)
at org.apache.beam.runners.dataflow.worker.util.common.worker.ReadOperation.runReadLoop(ReadOperation.java:201)
at org.apache.beam.runners.dataflow.worker.util.common.worker.ReadOperation.start(ReadOperation.java:159)
at org.apache.beam.runners.dataflow.worker.util.common.worker.MapTaskExecutor.execute(MapTaskExecutor.java:77)
at org.apache.beam.runners.dataflow.worker.fn.control.BeamFnMapTaskExecutor.execute(BeamFnMapTaskExecutor.java:123)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.process(StreamingDataflowWorker.java:1400)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.access$1100(StreamingDataflowWorker.java:156)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker$7.run(StreamingDataflowWorker.java:1101)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
步骤 01 只是一个"Read PubSub Messages" >> beam.io.ReadFromPubSub(subscription=subscription)
在此数据流之后,会增加工作人员的数量并停止处理任何新数据。作业仍处于RUNNNING
状态。
我们只需要重新启动作业即可解决它。但它每 2 周发生一次。
我们该如何解决?
【问题讨论】:
很难知道。这就像一个僵局。支持可以提供帮助.. 我认为我们需要更多信息来调试它。您可以提交支持票吗?如果没有,您能否提供有关您的管道的更多信息? @Artyom Tokachev,您可以在问题tracker 上报告此错误,同时分享管道详细信息。 @Artyom Tokachev 您是否设法解决了您的问题?对有类似情况的人有什么建议吗? 【参考方案1】:这看起来像是旧版“Java Runner Harness”的问题。我建议使用Dataflow Runner v2 运行您的管道以避免此类问题。您也可以等到它成为默认设置(目前正在推出)。
【讨论】:
以上是关于数据流作业卡在从 Pub/Sub 读取的主要内容,如果未能解决你的问题,请参考以下文章
读取 txt 文件 JSON 数据以在 Cloud Pub Sub 中发布消息
结合 BigQuery 和 Pub/Sub Apache Beam
模板化数据流中的 Pub/Sub 输入完全忽略 NestedValueProvider