Spark 1.6.0 中的 Twitter 接收器不是 运行
Twitter receiver not running in spark 1.6.0
出于某种原因,如果我包含一个推特接收器并启动流媒体上下文,我会收到以下异常,我不确定为什么
有人可以让我知道是否有人已经遇到过这个问题或者我做错了什么吗?
java.lang.ArithmeticException: / by zero
at org.apache.spark.streaming.Duration.isMultipleOf(Duration.scala:59)
at org.apache.spark.streaming.dstream.DStream.isTimeValid(DStream.scala:324)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute.apply(DStream.scala:344)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute.apply(DStream.scala:344)
at scala.Option.orElse(Option.scala:257)
at org.apache.spark.streaming.dstream.DStream.getOrCompute(DStream.scala:341)
at org.apache.spark.streaming.dstream.ForEachDStream.generateJob(ForEachDStream.scala:47)
at org.apache.spark.streaming.DStreamGraph$$anonfun.apply(DStreamGraph.scala:115)
at org.apache.spark.streaming.DStreamGraph$$anonfun.apply(DStreamGraph.scala:114)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
at org.apache.spark.streaming.DStreamGraph.generateJobs(DStreamGraph.scala:114)
at org.apache.spark.streaming.scheduler.JobGenerator$$anonfun.apply(JobGenerator.scala:248)
at org.apache.spark.streaming.scheduler.JobGenerator$$anonfun.apply(JobGenerator.scala:246)
at scala.util.Try$.apply(Try.scala:161)
at org.apache.spark.streaming.scheduler.JobGenerator.generateJobs(JobGenerator.scala:246)
at org.apache.spark.streaming.scheduler.JobGenerator.org$apache$spark$streaming$scheduler$JobGenerator$$processEvent(JobGenerator.scala:181)
at org.apache.spark.streaming.scheduler.JobGenerator$$anon.onReceive(JobGenerator.scala:87)
at org.apache.spark.streaming.scheduler.JobGenerator$$anon.onReceive(JobGenerator.scala:86)
at org.apache.spark.util.EventLoop$$anon.run(EventLoop.scala:48)
2016-03-28 10:08:00,112 ERROR [DefaultQuartzScheduler_Worker-8] org.quartz.core.JobRunShell
Job sample_TwitterListener.SocialMedia_sample threw an unhandled Exception:
终于找到了问题所在,在代码中我在流上初始化了两个 windows,如下所示
JavaReceiverInputDStream<Status> inputStream = TwitterUtils.createStream(jssc, getAuth());
JavaDStream<String> batchedInput = rawInput.window(new Duration(windowInterval), new Duration(slideInterval));
processStreamData(batchedInput);
private void processStreamData(JavaDStream<String> _input) {
JavaDStream<String> input = _input.window(new Duration(windowInterval), new Duration(slideInterval));
}
因此,第一个 windowed 流用于获得正确的滑动间隔,但不知何故第二个 window 获得了 0 毫秒的滑动间隔,这导致 / by 零异常。删除第二个 window 操作后,我能够接收到推特数据。
出于某种原因,如果我包含一个推特接收器并启动流媒体上下文,我会收到以下异常,我不确定为什么 有人可以让我知道是否有人已经遇到过这个问题或者我做错了什么吗?
java.lang.ArithmeticException: / by zero
at org.apache.spark.streaming.Duration.isMultipleOf(Duration.scala:59)
at org.apache.spark.streaming.dstream.DStream.isTimeValid(DStream.scala:324)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute.apply(DStream.scala:344)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute.apply(DStream.scala:344)
at scala.Option.orElse(Option.scala:257)
at org.apache.spark.streaming.dstream.DStream.getOrCompute(DStream.scala:341)
at org.apache.spark.streaming.dstream.ForEachDStream.generateJob(ForEachDStream.scala:47)
at org.apache.spark.streaming.DStreamGraph$$anonfun.apply(DStreamGraph.scala:115)
at org.apache.spark.streaming.DStreamGraph$$anonfun.apply(DStreamGraph.scala:114)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
at org.apache.spark.streaming.DStreamGraph.generateJobs(DStreamGraph.scala:114)
at org.apache.spark.streaming.scheduler.JobGenerator$$anonfun.apply(JobGenerator.scala:248)
at org.apache.spark.streaming.scheduler.JobGenerator$$anonfun.apply(JobGenerator.scala:246)
at scala.util.Try$.apply(Try.scala:161)
at org.apache.spark.streaming.scheduler.JobGenerator.generateJobs(JobGenerator.scala:246)
at org.apache.spark.streaming.scheduler.JobGenerator.org$apache$spark$streaming$scheduler$JobGenerator$$processEvent(JobGenerator.scala:181)
at org.apache.spark.streaming.scheduler.JobGenerator$$anon.onReceive(JobGenerator.scala:87)
at org.apache.spark.streaming.scheduler.JobGenerator$$anon.onReceive(JobGenerator.scala:86)
at org.apache.spark.util.EventLoop$$anon.run(EventLoop.scala:48)
2016-03-28 10:08:00,112 ERROR [DefaultQuartzScheduler_Worker-8] org.quartz.core.JobRunShell
Job sample_TwitterListener.SocialMedia_sample threw an unhandled Exception:
终于找到了问题所在,在代码中我在流上初始化了两个 windows,如下所示
JavaReceiverInputDStream<Status> inputStream = TwitterUtils.createStream(jssc, getAuth());
JavaDStream<String> batchedInput = rawInput.window(new Duration(windowInterval), new Duration(slideInterval));
processStreamData(batchedInput);
private void processStreamData(JavaDStream<String> _input) {
JavaDStream<String> input = _input.window(new Duration(windowInterval), new Duration(slideInterval));
}
因此,第一个 windowed 流用于获得正确的滑动间隔,但不知何故第二个 window 获得了 0 毫秒的滑动间隔,这导致 / by 零异常。删除第二个 window 操作后,我能够接收到推特数据。