Apache Beam:PubsubReader因NPE而失败

gk888 03/23/2017. 1 answers, 132 views
apache-beam

我有一个从PubSub读取的beam管道,并在应用了一些转换后写入BigQuery。 管道与NPE一致失败。 我正在使用beam SDK版本0.6.0。 关于我可能做错的任何想法? 我试图用DirectRunner运行管道。

java.lang.NullPointerException
at org.apache.beam.sdk.io.PubsubUnboundedSource$PubsubReader.ackBatch(PubsubUnboundedSource.java:640)
at org.apache.beam.sdk.io.PubsubUnboundedSource$PubsubCheckpoint.finalizeCheckpoint(PubsubUnboundedSource.java:313)
at org.apache.beam.runners.direct.UnboundedReadEvaluatorFactory$UnboundedReadEvaluator.getReader(UnboundedReadEvaluatorFactory.java:174)
at org.apache.beam.runners.direct.UnboundedReadEvaluatorFactory$UnboundedReadEvaluator.processElement(UnboundedReadEvaluatorFactory.java:127)
at org.apache.beam.runners.direct.TransformExecutor.processElements(TransformExecutor.java:139)
at org.apache.beam.runners.direct.TransformExecutor.run(TransformExecutor.java:107)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745) 

1 Answers


Thomas Groh 03/24/2017.

由于DirectRunner中的Bug( BEAM-1656 )和PubsubCheckpoint中的前提条件,因此存在此问题。 DirectRunner中的错误在pull请求2237中得到修复,该请求被合并到Github主分支中,但是在0.6.0版本之后。

使用DirectRunner时,从github HEAD更新到0.7.0每晚构建或构建将解决此问题。

要更新到当前的每晚构建,您必须将以下存储库添加到项目的pom.xml 。 包含该修复程序的beam-runners-direct-java模块的最早版本是0.7.0-20170316.070901-9 ,但并非所有模块都是使用此特定版本构建的,因此您可能必须指定单独兼容的版本或使用0.7.0-SNAPSHOT

              apache.snapshots        Apache Development Snapshot Repository https://repository.apache.org/content/repositories/snapshots/                  false                          true                   
3 comments
gk888 03/24/2017
谢谢。 升级到0.7.0-SNAPSHOT似乎解决了这个错误,但引入了另一个java.lang.IllegalStateException: Cannot nackAll on persisting checkpoint at org.apache.beam.sdks.java.core.repackaged.com.google.common.‌​base.Preconditions.c‌​heckState(Preconditi‌​ons.java:444)和我的gradle配置是`“org.apache.beam:beam-sdks-java-core:0.7.0-SNAPSHOT”,“org.apache.beam :光束的SDK的Java-IO-谷歌云平台:0.7 0.0 - 快照 “” org.ap ache.beam:光束runne RS-谷歌-云的数据流的java:0.7的3.0 SNAP SHOT”, “org.apache.be是:梁亚军可怕的CT-java的:0.7.0-SNAPSH OT”
Thomas Groh 03/24/2017
这是由BEAM-1182BEAM-1655这两个问题的结合导致的失败。 拉请求#2323修复了BEAM-1182,所以今晚的每晚构建应该按预期工作。
gk888 03/28/2017
每晚的构建似乎已经解决了这个问题。 谢谢托马斯。

Related questions

Hot questions

Language

Popular Tags