4 votes

Traitement bloqué lors de l'écriture dans BigQuery

J'utilise Cloud Dataflow pour importer des données depuis des messages Pub/Sub vers des tables BigQuery. J'utilise DynamicDestinations car ces messages peuvent être placés dans différentes tables.

J'ai récemment remarqué que le processus a commencé à consommer toutes les ressources et que des messages indiquant que le processus est bloqué ont commencé à s'afficher :

Processing stuck in step Write Avros to BigQuery Table/StreamingInserts/StreamingWriteTables/StreamingWrite for at least 26h45m00s 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)

Actuellement, le simple fait d'annuler le pipeline et de le redémarrer semble résoudre temporairement le problème, mais je ne parviens pas à déterminer la raison pour laquelle le processus se bloque.

Le pipeline utilise beam-runners-google-cloud-dataflow-java version 2.8.0 et google-cloud-bigquery version 1.56.0.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X