Неожиданная ошибка Beam / DataFlow ProtocolMessageEnum не реализована при использовании DataFlowRunner - PullRequest
0 голосов
/ 14 января 2019

При локальном запуске моего конвейера Beam все работает как положено, но при попытке запустить его на DataflowRunner я неожиданно получаю сообщение об ошибке ниже. Честно говоря, я даже не знаю, с чего начать оценку, потому что DataflowRunner выглядит как черный ящик.

Jan 14, 2019 11:26:51 AM org.apache.beam.runners.dataflow.DataflowRunner fromOptions
INFO: PipelineOptions.filesToStage was not specified. Defaulting to files from the classpath: will stage 165 files. Enable logging at DEBUG level to see which files will be staged.
Exception in thread "main" java.lang.IncompatibleClassChangeError: Class org.apache.beam.model.pipeline.v1.RunnerApi$StandardPTransforms$Primitives does not implement the requested interface com.google.protobuf.ProtocolMessageEnum
        at org.apache.beam.runners.core.construction.BeamUrns.getUrn(BeamUrns.java:27)
        at org.apache.beam.runners.core.construction.PTransformTranslation.<clinit>(PTransformTranslation.java:58)
        at org.apache.beam.runners.core.construction.UnconsumedReads$1.visitValue(UnconsumedReads.java:49)
        at org.apache.beam.sdk.runners.TransformHierarchy$Node.visit(TransformHierarchy.java:666)
        at org.apache.beam.sdk.runners.TransformHierarchy$Node.visit(TransformHierarchy.java:649)
        at org.apache.beam.sdk.runners.TransformHierarchy$Node.visit(TransformHierarchy.java:649)
        at org.apache.beam.sdk.runners.TransformHierarchy$Node.visit(TransformHierarchy.java:649)
        at org.apache.beam.sdk.runners.TransformHierarchy$Node.access$600(TransformHierarchy.java:311)
        at org.apache.beam.sdk.runners.TransformHierarchy.visit(TransformHierarchy.java:245)
        at org.apache.beam.sdk.Pipeline.traverseTopologically(Pipeline.java:458)
        at org.apache.beam.runners.core.construction.UnconsumedReads.ensureAllReadsConsumed(UnconsumedReads.java:40)
        at org.apache.beam.runners.dataflow.DataflowRunner.replaceTransforms(DataflowRunner.java:868)
        at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:660)
        at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:173)
        at org.apache.beam.sdk.Pipeline.run(Pipeline.java:313)
        at org.apache.beam.sdk.Pipeline.run(Pipeline.java:299)
        at (my code: pipe.run().waitUntilFinish();) 

1 Ответ

0 голосов
/ 11 февраля 2019

проверьте версии луча и т. Д. И по возможности обновите ваши зависимости.

У меня была такая же ошибка, и, увидев, что вы получаете эту ошибку, я подумал, что это конфликт зависимостей, поскольку его не было раньше.

Я использую scio для развертывания в потоке данных и просто ссылаюсь на то, что они используют. https://github.com/spotify/scio/blob/v0.7.1/build.sbt Я также обновил guava и protobuf. * ​​1007 *

Я знаю, что вы используете Java, но попробуйте обновить Beam до 2.9.0 и, возможно, guava, protobuf ...

...