Ich möchte, dass ein Verbraucher ein Kafka-Thema abonniert und Daten für die weitere Verarbeitung mit Spark Streaming außerhalb des Verbrauchers streamt. Warum ein Schauspieler? Weil ich gelesen habe, dass seine Supervisor-Strategie eine gute Möglichkeit wäre, Kafka-Fehler zu behandeln (z. B. Neustart bei einem Fehler).
Ich habe zwei Optionen gefunden:
KafkaConsumer
Klasse: Die Methode poll()
gibt Map[String, Object]
zurück. Ich möchte, dass DStream
genauso zurückgegeben wird wie KafkaUtils.createDirectStream
, und ich weiß nicht, wie ich den Stream außerhalb des Actors abrufen kann. ActorHelper
und verwenden Sie actorStream()
wie in diesem Beispiel . Diese letztere Option zeigt keine Verbindung zu einem Thema, sondern zu einem Socket. Könnte mir jemand in die richtige Richtung zeigen?
Für die Behandlung von Kafka-Fehlern habe ich das Apache Curator-Framework und die folgende Problemumgehung verwendet:
%Vor% Um Kafka-Themen zu konsumieren, habe ich die com.softwaremill.reactivekafka
-Bibliothek benutzt. Zum Beispiel:
Tags und Links scala actor apache-kafka spark-streaming