运行数据流时出现问题

时间:2019-03-13 16:21:28

标签: google-cloud-dataflow apache-beam

运行数据流作业时出现错误。我正在尝试将现有的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)

3 个答案:

答案 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