运行数据流作业时出现错误。我正在尝试将现有的Beam版本更新为2.11.0,但是在运行时出现错误。
java.lang.IncompatibleClassChangeError:类 org.apache.beam.model.pipeline.v1.RunnerApi $ StandardPTransforms $ Primitives 没有实现请求的接口 com.google.protobuf.ProtocolMessageEnum位于 org.apache.beam.runners.core.construction.BeamUrns.getUrn(BeamUrns.java:27) 在 org.apache.beam.runners.core.construction.PTransformTranslation。(PTransformTranslation.java:58) 在 org.apache.beam.runners.core.construction.UnconsumedReads $ 1.visitValue(UnconsumedReads.java:49) 在 org.apache.beam.sdk.runners.TransformHierarchy $ Node.visit(TransformHierarchy.java:666) 在 org.apache.beam.sdk.runners.TransformHierarchy $ Node.visit(TransformHierarchy.java:649) 在 org.apache.beam.sdk.runners.TransformHierarchy $ Node.visit(TransformHierarchy.java:649) 在 org.apache.beam.sdk.runners.TransformHierarchy $ Node.visit(TransformHierarchy.java:649) 在 org.apache.beam.sdk.runners.TransformHierarchy $ Node.access $ 600(TransformHierarchy.java:311) 在 org.apache.beam.sdk.runners.TransformHierarchy.visit(TransformHierarchy.java:245) 在 org.apache.beam.sdk.Pipeline.traverseTopologically(Pipeline.java:458) 在 org.apache.beam.runners.core.construction.UnconsumedReads.ensureAllReadsConsumed(UnconsumedReads.java:40) 在 org.apache.beam.runners.dataflow.DataflowRunner.replaceTransforms(DataflowRunner.java:868) 在 org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:660) 在 org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:173) 在org.apache.beam.sdk.Pipeline.run(Pipeline.java:313)处 org.apache.beam.sdk.Pipeline.run(Pipeline.java:299)
答案 0 :(得分:1)
这通常意味着构建Beam的com.google.protobuf:protobuf-java
的版本与运行时的版本不匹配。您的管道代码是否也取决于协议缓冲区?
更新:我已提交https://issues.apache.org/jira/browse/BEAM-6839进行跟踪。这是不期望的。
答案 1 :(得分:0)
我没有足够的代表发表评论,但是我遇到了这个问题,后来发现我的问题是我的pom.xml中有不同的梁版本。有些人有2.19,有些人有2.20。
我会在pom或gradle文件中快速搜索您的版本,以确保它们都相同。
答案 2 :(得分:0)
这可能是由于不兼容的依赖关系引起的。通过同时升级依赖关系,我成功地将Beam从2.2.0升级到2.20.0。
beam.version: 2.20.0
guava.version: 29.0-jre
bigquery.version: v2-rev20191211-1.30.9
google-api-client.version: 1.30.9
google-http-client.version: 1.34.0
pubsub.version: v1-rev20200312-1.30.9