Apache Beam: PubsubReader не працює з NPE

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

У мене є aa промінь трубопроводу, який читає з PubSub і писати в BigQuery після застосування деяких перетворень. Трубопровід не збігається з NPE. Я використовую 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.

Ця проблема існує через помилку ( BEAM-1656 ) в DirectRunner і передумовою в PubsubCheckpoint. Помилка в DirectRunner була зафіксована в запиті тягну 2237 , яка об'єднана в майстер гілки Github, але після випуску 0.6.0.

Оновлення до 0.7.0 нічного побудови або будівлі від github HEAD дозволить вирішити цю проблему при використанні DirectRunner.

Щоб оновитись до поточної побудови, вам доведеться додати наступні сховища до 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) а моя градаційна конфігурація - це "org.apache.beam: beam-sdks-java-core: 0.7.0-snapshot", "org.apache.beam : beam-sdks-java-io-google-cloud-platform: 0.7 .0-SNAPSHOT "," org.ap ache.beam: beam-runne rs-google-cloud-data flow-java: 0.7 .0-SNAP SHOT "," org.apache.be am: beam-runners-dire ct-java: 0.7.0-SNAPSH OT "
Thomas Groh 03/24/2017
Це провал, викликаний комбінацією двох інших проблем, BEAM-1182 та BEAM-1655 . Витягнути запит № 2323 фіксує BEAM-1182, тому нічне побудову цього вечора має працювати, як очікувалося.
gk888 03/28/2017
Нічне будівництво, здається, вирішило проблему. Спасибі Томасу.

Related questions

Hot questions

Language

Popular Tags