Spark Streaming + Kafka: SparkException: Es konnten keine Vorlaufoffsets für Set gefunden werden

8

Ich versuche, Spark Streaming einzurichten, um Nachrichten aus der Kafka-Warteschlange zu erhalten. Ich erhalte den folgenden Fehler:

%Vor%

Hier ist der Code, den ich ausführe (pyspark):

%Vor%

Es gab ein paar ähnliche Posts mit demselben Fehler. In allen Fällen war die Ursache das leere Kafka-Thema. Es gibt Nachrichten in meinem "Test-Thema". Ich kann sie mit

rausholen %Vor%

Weiß jemand, was das Problem sein könnte?

Ich benutze:

  • Spark 1.5.2 (Apache)
  • Kafka 0.8.2.0 + kafka1.3.0 (CDH 5.4.7)
facha 15.12.2015, 11:48
quelle

5 Antworten

5

Sie müssen 2 Dinge überprüfen

  1. Überprüfen Sie, ob das Thema und die Partition vorhanden sind. In Ihrem Fall ist das Thema test-topic  und Partition ist 0

  2. basierend auf Ihrem Code, versuchen Sie Nachricht von Offset 0 zu konsumieren und es könnte möglich sein, dass die Nachricht von Offset 0 nicht verfügbar ist, prüfen Sie, was Sie am frühesten Offset haben und versuchen Sie, von dort zu konsumieren

unten ist der Befehl zum Überprüfen des frühesten Versatzes

sh kafka / bin / kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list "Ihre Brokerliste" --topic "Themenname" --time -1

    
Narendra Parmar 05.08.2016 23:30
quelle
3

1) Sie müssen sicherstellen, dass Sie bereits das Thema test-topic

erstellt haben

Führen Sie folgenden Befehl aus, um die Liste des Themas zu überprüfen

kafka-topics.sh --list --zookeeper [host or ip of zookeeper]:[port]

2) Nachdem Sie Ihr Thema überprüft haben, müssen Sie Ihre Kafka-Konfiguration in Socket Server Settings section

konfigurieren

listeners=PLAINTEXT://[host or ip of Kafka]:[port]

    
Narongsak Mala 07.12.2016 10:18
quelle
1

Wenn Sie kurze Hostnamen in / etc / hosts definieren und diese in den Konfigurationen Ihrer kafka-Server verwenden, sollten Sie diesen Namen in ip ändern. Oder registrieren Sie den gleichen kurzen Host-Namen auf Ihrem lokalen PC oder Client / etc / hosts.

Fehler ist aufgetreten, weil Spark streaming lib den kurzen Hostnamen auf dem PC oder Client nicht auflösen kann.

    
user6399397 30.05.2016 08:17
quelle
1

Eine weitere Option, um das Erstellen eines Themas zu erzwingen, wenn es nicht existiert. Sie können dies tun, indem Sie die Eigenschaft "auto.create.topics.enable" in der kafkaParams-Map wie folgt auf "true" setzen.

%Vor%

Verwenden von Scala 2.11 und Kafka 0.10 Versionen.

    
Peter T. 09.02.2017 15:17
quelle
0

Einer der Gründe für diese Art von Fehler, bei dem der Leiter für das angegebene Thema nicht gefunden werden kann, ist das Problem mit den eigenen Kafka Server-Konfigurationen.

Öffnen Sie Ihre Kafka Server Configs:

%Vor%

Geben Sie im Abschnitt "Socket-Server-Einstellungen" die IP-Adresse für Ihren Host an, falls dieser fehlt:

%Vor%

Ich benutzte das Kafka-Setup, das mit der MapR-Sandbox geliefert wurde, und versuchte über Funkcode auf den Kafka zuzugreifen. Ich habe den gleichen Fehler beim Zugriff auf mein Kafka erhalten, da meine Konfiguration die IP nicht enthält.

    
Vijay 03.08.2017 07:22
quelle