Un de mes travaux par lots ce soir a échoué avec une exception d'exécution. Il écrit Data to Datastore comme 200 autres travaux en cours ce soir. Celui-ci a échoué avec une très longue liste des causes auf, la racine de celui-ci devrait être ceci:Google Dataflow n'a pas écrit suffisamment de données dans la banque de données
Caused by: com.google.datastore.v1.client.DatastoreException: I/O error, code=UNAVAILABLE
at com.google.datastore.v1.client.RemoteRpc.makeException(RemoteRpc.java:126)
at com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:95)
at com.google.datastore.v1.client.Datastore.commit(Datastore.java:84)
at com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1$DatastoreWriterFn.flushBatch(DatastoreV1.java:925)
at com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1$DatastoreWriterFn.processElement(DatastoreV1.java:892)
Caused by: java.io.IOException: insufficient data written
at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.close(HttpURLConnection.java:3501)
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:81)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981)
at com.google.datastore.v1.client.RemoteRpc.call(RemoteRpc.java:87)
at com.google.datastore.v1.client.Datastore.commit(Datastore.java:84)
at com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1$DatastoreWriterFn.flushBatch(DatastoreV1.java:925)
at com.google.cloud.dataflow.sdk.io.datastore.DatastoreV1$DatastoreWriterFn.processElement(DatastoreV1.java:892)
at com.google.cloud.dataflow.sdk.util.SimpleDoFnRunner.invokeProcessElement(SimpleDoFnRunner.java:49)
at com.google.cloud.dataflow.sdk.util.DoFnRunnerBase.processElement(DoFnRunnerBase.java:139)
at com.google.cloud.dataflow.sdk.runners.worker.SimpleParDoFn.processElement(SimpleParDoFn.java:188)
at com.google.cloud.dataflow.sdk.runners.worker.ForwardingParDoFn.processElement(ForwardingParDoFn.java:42)
at com.google.cloud.dataflow.sdk.runners.
Comment cela peut-il arriver? C'est très semblable à tous les autres travaux que je dirige. J'utilise le flux de données-version 1.9.0 et la norme DatastoreIO.v1() écrire ....
Les jobids avec ce message d'erreur:.
2017-08-29_17_05_19-6961364220840664744
2017-08-29_16_40_46-15665765683196208095
Est-il possible de récupérer les erreurs/logs d'un travail à partir d'une application externe (console non cloud) pour être automatiquement en mesure de relancer les travaux, si elles habituellement réussir et échouer à cause de q uota-questions ou d'autres raisons qui sont temporaires? Merci d'avance
Je vais étudier les tâches. Il est possible qu'il n'y ait eu qu'un problème transitoire lié à la banque de données ou similaire. Vous pouvez vérifier l'état d'échec/de réussite des tâches à l'aide de l'interface de ligne de commande pour le flux de données, ce qui devrait vous permettre de répertorier les tâches et d'interroger leur état. https://cloud.google.com/dataflow/pipelines/dataflow-command-line-intf –
J'ai réessayé ces Jobs, mais malheureusement ils ont lancé les mêmes exceptions. C'est étrange car comme indiqué ci-dessus, ils sont similaires à ~ 100 autres travaux tous couronnés de succès. Je vais vérifier si les données d'entrée pour ces travaux diffèrent étrangement du reste. Merci d'avance pour votre aide @LaraSchmidt Les nouvelles JobIds: 2017-08-30_05_31_24-7610218350337775734 et 2017-08-30_05_33_22-3164534937414554703 – user2122552