2016-03-28 6 views
-1

Aus irgendeinem Grund, wenn ich einen Twitter-Empfänger einschließe und den Streaming-Kontext zu starten, bekomme ich die untenstehende Ausnahme nicht sicher, warum Kann jemand mich wissen lassen, wenn jemand dieses Problem schon begegnet ist oder bin Ich mache etwas falsch?Twitter Empfänger läuft nicht 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$1.apply(DStream.scala:344) 
     at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute$1.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$1.apply(DStreamGraph.scala:115) 
     at org.apache.spark.streaming.DStreamGraph$$anonfun$1.apply(DStreamGraph.scala:114) 
     at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251) 
     at scala.collection.TraversableLike$$anonfun$flatMap$1.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$3.apply(JobGenerator.scala:248) 
     at org.apache.spark.streaming.scheduler.JobGenerator$$anonfun$3.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$1.onReceive(JobGenerator.scala:87) 
     at org.apache.spark.streaming.scheduler.JobGenerator$$anon$1.onReceive(JobGenerator.scala:86) 
     at org.apache.spark.util.EventLoop$$anon$1.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: 
+0

Warum wird dies abgelehnt? –

Antwort

0

Schließlich fanden, was das Problem war, in dem Code, den ich auf dem Strom zwei Fenster wurde initialisiert, wie unten

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)); 
} 

ersten Fensterstrom verwendete also das richtig Gleitintervall zu bekommen, aber irgendwie das zweite Fenster hat das gleitende Intervall von 0 ms erhalten, was eine Null-Ausnahme verursacht hat. Nach dem Entfernen der zweiten Fensteroperation konnte ich die Twitter-Daten erhalten.

Verwandte Themen