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) อื่น 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) และการกำหนดค่า gradlet ของฉันคือ `" org.apache.beam: beam-sdks-java-core: 0.7.0-SNAPSHOT "," org.apache.beam : คาน SDKs-Java-IO-google-เมฆแพลตฟอร์ม: 0.7 0.0-SNAPSHOT "" org.ap ache.beam: คาน Runne RS-google-เมฆข้อมูลไหลจาวา: 0.7 0.0-SNAP SHOT", "org.apache.be am: คานวิ่งตกระกำลำบาก 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