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:
Sie müssen 2 Dinge überprüfen
Überprüfen Sie, ob das Thema und die Partition vorhanden sind. In Ihrem Fall ist das Thema test-topic und Partition ist 0
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
1) Sie müssen sicherstellen, dass Sie bereits das Thema test-topic
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
listeners=PLAINTEXT://[host or ip of Kafka]:[port]
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.
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.
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.
Tags und Links apache-spark apache-kafka spark-streaming