Cai*_*iva 8 google-cloud-dataflow apache-beam
我的团队开发的数据流管道突然开始卡住,停止处理事件。他们的工作日志充满警告消息,指出一个特定步骤被卡住了。奇怪的是,失败的步骤是不同的,一个是BigQuery输出,另一个是Cloud Storage输出。
以下是我们收到的日志消息:
对于BigQuery输出:
Processing stuck in step <STEP_NAME>/StreamingInserts/StreamingWriteTables/StreamingWrite for at least <TIME> without outputting or completing in state finish
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:765)
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:829)
at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.flushRows(StreamingWriteFn.java:131)
at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.finishBundle(StreamingWriteFn.java:103)
at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn$DoFnInvoker.invokeFinishBundle(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
对于云存储输出:
Processing stuck in step <STEP_NAME>/WriteFiles/WriteShardedBundlesToTempFiles/WriteShardsIntoTempFiles for at least <TIME> 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.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at com.google.cloud.hadoop.util.AbstractGoogleAsyncWriteChannel.waitForCompletionAndThrowIfUploadFailed(AbstractGoogleAsyncWriteChannel.java:421)
at com.google.cloud.hadoop.util.AbstractGoogleAsyncWriteChannel.close(AbstractGoogleAsyncWriteChannel.java:287)
at org.apache.beam.sdk.io.FileBasedSink$Writer.close(FileBasedSink.java:1007)
at org.apache.beam.sdk.io.WriteFiles$WriteShardsIntoTempFilesFn.processElement(WriteFiles.java:726)
at org.apache.beam.sdk.io.WriteFiles$WriteShardsIntoTempFilesFn$DoFnInvoker.invokeProcessElement(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
所有应用程序都已被排干并重新部署,但是一段时间(3到4个小时)后发生了相同的事情。其中一些已经运行了40多个天,而他们突然进入了代码库,而没有对代码进行任何更改。
我想寻求帮助以了解此问题的原因。这些是存在这些问题的某些Dataflow作业的以下ID:
卡在BigQuery输出中:2019-03-04_04_46_31-3901977107649726570
卡在云存储输出中:2019-03-04_07_50_00-10623118563101608836
这些Processing stuck消息并不一定意味着您的管道实际上已卡住。这些消息由执行相同操作超过 5 分钟的工作人员记录。
通常,这仅表示操作缓慢:外部 RPC,或等待外部进程(在对 BigQuery 执行加载或查询作业时非常常见)。
如果您看到此类消息在您的管道中经常发生,或者数量越来越多(5m、10m、50m、1h等),那么它可能表示卡住了 - 但如果您偶尔在管道中看到它,则无需担心。
值得考虑的是,在旧版本的 Beam(从 2.5.0 到 2.8.0)中,用作默认安全提供程序的 Conscrypt 库存在死锁问题。从Beam 2.9.0 开始,Conscrypt 不再是默认的安全提供者。
另一种选择是降级到 Beam 2.4.0,其中 conscrypt 也不是默认提供程序。
| 归档时间: |
|
| 查看次数: |
1665 次 |
| 最近记录: |