2016-05-17 7 views
1

Ich habe gerade erst angefangen, mit IBM Bluemix zu arbeiten und wollte der Spark-Streaming-Sektion eine Chance geben.Echtzeit-Sentiment-Analyse von Twitter Hashtags mit Spark || Fehler beim Starten des Streaming-Dienstes

Ich habe angefangen mit 2 Tutorials zu arbeiten, die als Einführung in die Sentiment Analyse von Twitter Hashtags mit Spark und Watson dienen.

jedoch in keiner der vorgesehenen Fällen I konnte den Funkenstrom starten.

Beide Tutorials verwenden Github project's iPython-Notebooks, um die Beispielanwendung mit Spark Streaming anzuzeigen.

Dies ist ein Beispiel für ein Ausnahmeprotokoll der Ausnahmen, die beim ersten Notebook aufgetreten sind.

Registering JaasConfiguration: /tmp/pMftPERZFap2a9SH/jaas.conf 
Setting hadoop configuration for swift container 
https://kafka-rest-prod01.messagehub.services.us-south.bluemix.net:443/admin/topics 
https://kafka-rest-prod01.messagehub.services.us-south.bluemix.net:443/admin/topics 
https://kafka-rest-prod01.messagehub.services.us-south.bluemix.net:443/admin/topics 
default location of ssl Trust store is: /usr/local/src/spark160master/ibm-java-x86_64-80/jre/lib/security/cacerts 
Twitter stream started 
Tweets are collected real-time and analyzed 
To stop the streaming and start interacting with the data use: StreamingTwitter.stopTwitterStreaming 
Receiver Started: KafkaReceiver-0 
Receiver Stopped: KafkaReceiver-0 
Reason: org.apache.kafka.common.config.ConfigException: Invalid value com.ibm.cds.spark.samples.StatusDeserializer for configuration value.deserializer: Class com.ibm.cds.spark.samples.StatusDeserializer could not be found. 
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:204) 
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:122) 
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:48) 
    at org.apache.kafka.clients.consumer.ConsumerConfig.<init>(ConsumerConfig.java:194) 
    at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:380) 
    at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:363) 
    at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:350) 
    at com.ibm.cds.spark.samples.dstream.KafkaReceiver.onStart(KafkaInputDStream.scala:88) 
    at org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:148) 
    at org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:130) 
    at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:575) 
    at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:565) 
    at org.apache.spark.SparkContext$$anonfun$38.apply(SparkContext.scala:1997) 
    at org.apache.spark.SparkContext$$anonfun$38.apply(SparkContext.scala:1997) 
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66) 
    at org.apache.spark.scheduler.Task.run(Task.scala:89) 
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
    at java.lang.Thread.run(Thread.java:785) 
: Error starting receiver 0 

Sie werden einige Abschnitte in dem Notebook sehen, wo Sie die Anmeldeinformationen (Twitter App, Kafka Dienstberechtigungen) eingeben müssen. Zuerst dachte ich, dass es sich um einen Berechtigungsnachweis handelt, also habe ich mehrmals nachgeprüft, ob es sich um ein Anmeldeproblem handelte. Dann habe ich versucht, die verschiedenen im Beispielprojekt verwendeten Klassen und die im Fehlerprotokoll erwähnten Klassen zu betrachten. t scheint das Problem zu lösen.

Ich denke, die Antwort auf die Frage in diesen drei Zeilen Code liegt:

Reason: org.apache.kafka.common.config.ConfigException: Invalid value com.ibm.cds.spark.samples.StatusDeserializer for configuration value.deserializer: Class com.ibm.cds.spark.samples.StatusDeserializer could not be found. 
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:204) 
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:122) 
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:48) 

Bitte geben Sie eine Anleitung, wie ich dieses Problem beheben kann. Ich würde gerne weitergehen und verschiedene neue Dinge ausprobieren, aber ich muss sicherstellen, was für ein Problem das ist.

+0

Hallo, Bitte importieren Sie alle Klassen, so dass Sie nicht dieses Problem der Klasse treffen würde nicht gefunden. Importieren Sie das direkt nach dem% Addjar des Assembly-Jars. import com.ibm.cds.spark.samples._ Aber ich denke, das scheint wie ein intermittierendes Problem. Danke, Charles. –

+0

Hallo Charles, danke für Ihre Anleitung. Ich habe versucht, was Sie vorgeschlagen, aber ich denke, es ist ein Problem mit dem Beispielprojektcode. Ich habe gerade den Autor des Projekts über GitHub kontaktiert, ich hoffe, er wird sich darum kümmern. – Nick

Antwort

0

Es gab eine Änderung im Spark Service, die dieses Problem verursacht hat. Ein Update wurde bereitgestellt. Können Sie bitte versuchen, die App erneut auszuführen? Danke, David

0

Momentan befolge ich auch das Echtzeit-Sentiment-Analyse-Tutorial. Anscheinend funktioniert das Update, da ich den Spark-Stream starten kann und die Ausgabe des Notebooks zeigt, dass es Datensätze sammelt.

Das Dashboard erstellt jedoch keine Diagramme und zeigt 0 verarbeitete Tweets an. Es gibt keine Fehler in den Protokollen der App. Ich würde mich über jeden Hinweis freuen.

UPDATE: Wird verwaltet, um die Dashboard-App auszuführen, indem die Konfigurationen für den Watson Tone Analyzer im Notebook geändert werden, da es sich nicht mehr um eine Beta handelt.

config.setConfig("watson.tone.url","https://gateway.watsonplatform.net/tone-analyzer/api")