运行数据流作业时出现以下错误。我正在尝试将现有的 Beam 版本更新为 2.11.0,但在运行时出现以下错误。
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.(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)
最佳答案
这通常意味着 com.google.protobuf:protobuf-java
的版本Beam 构建时使用的版本与运行时的版本不匹配。您的管道代码是否也依赖于 Protocol Buffer ?
更新:我已提交 https://issues.apache.org/jira/browse/BEAM-6839跟踪这个。这不是预期的。
关于google-cloud-dataflow - 运行数据流时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55146663/