首页 > 解决方案 > 从 Java 中的 pub sub 流式传输时使用 PubSub-NullPointerException 进行 Spark Streaming

问题描述

我的数据在 PubSub 中,我想流式传输数据。我使用 dataproc 在 java 中运行我的 spark 作业。但是作业失败并出现以下错误。

19/06/18 06:32:30 警告 org.apache.spark.streaming.scheduler.ReceiverTracker:接收器报告流 0 的错误:无法提取消息 - scala.collection.convert.Wrappers$ 的 java.lang.NullPointerException JListWrapper.iterator(Wrappers.scala:88) at scala.collection.IterableLike$class.foreach(Ite​​rableLike.scala:72) at scala.collection.AbstractIterable.foreach(Ite​​rable.scala:54) at scala.collection.generic.Growable $class.$plus$plus$eq(Growable.scala:59) at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:183) at scala.collection.mutable.ListBuffer.$plus$ plus$eq(ListBuffer.scala:45) at scala.collection.TraversableLike$class.to(TraversableLike.scala:590) at scala.collection.AbstractTraversable.to(Traversable.scala:104) at scala.collection.TraversableOnce$class .toList(TraversableOnce.scala:294) 在 org.apache.spark.streaming.pubsub.PubsubReceiver.receive(PubsubInputDStream.scala:259) 在 org.apache.spark.streaming.pubsub.PubsubReceiver 的 scala.collection.AbstractTraversable.toList(Traversable.scala:104) $$anon$1.run(PubsubInputDStream.scala:247)

我使用的代码段是

PubsubUtils.createStream(jssc, "projectId","TopicName","subscriptionName",new SparkGCPCredentials.Builder().jsonServiceAccount("放置在dataproc中的json的绝对路径"), StorageLevel.MEMORY_AND_DISK_2());

标签: google-cloud-platformspark-streaminggoogle-cloud-pubsub

解决方案


当 spark 尝试从没有等待事件的 pubsub 订阅中读取事件时,会显示此警告。它不应该破坏工作,而只是意味着对于给定的一批数据没有要读取的事件。


推荐阅读