0

Ich verwende Confluent 3.2 in einer Reihe von Docker-Containern, von denen einer einen kafka-connect Worker ausführt.Kafka Sink Connector: Keine Aufgaben zugewiesen, auch nach Neustart

Aus Gründen, die noch unklar für mich, zwei meiner vier Anschlüsse - um genau zu sein, HPGraphsl MongoDB sink connector - funktioniert nicht mehr. Ich war in der Lage, das Hauptproblem zu identifizieren: Den Konnektoren waren keine Aufgaben zugewiesen, wie durch Aufruf von GET /connectors/{my_connector}/status ersichtlich war. Die anderen zwei Anschlüsse (des gleichen Typs) waren nicht betroffen und erzeugten glücklich die Ausgabe.

Ich habe versucht, drei verschiedene Methoden meine Anschlüsse bekommen wieder über die REST-API ausgeführt wird:

  • Pausieren und Fortsetzen der Anschlüsse
  • der Anschlüsse
  • löschen Neustarten und die Erstellung der Stecker unter dem gleichen Namen mit derselben Konfiguration

Keine der Methoden funktioniert. Ich habe endlich meine Anschlüsse funktioniert wieder durch:

  • Löschen und den Stecker unter einem anderen Namen zu schaffen, sagen my_connector_v2 statt my_connector

Was ist hier los? Warum kann ich meinen vorhandenen Connector nicht neu starten und veranlassen, dass er eine tatsächliche Task startet? Gibt es veraltete Daten zum kafka-connect worker oder zu einem kafka-connect-verwandten Thema auf den Kafka-Brokern, die bereinigt werden müssen?

Ich habe filed an issue auf dem Github Repo des spezifischen Verbindungsstücks, aber ich fühle mich wie dies könnte eigentlich allgemeine Fehler im Zusammenhang mit den intrinsics von kafka-connect sein. Irgendwelche Ideen?

+0

Dies würde an den Anschluss-Plugin spezifisch sein. Die Aufgabenzuweisung liegt in der Verantwortung der Konnektorimplementierung, so dass die Bedingungen für das Starten einer Aufgabe wahrscheinlich nicht erfüllt sind. – dawsaw

+0

Woher nehmen Sie diese Informationen? Ich sehe keine Aufgabenzuweisungslogik in der Connector-Implementierung, die ich verwende: https://github.com/hpgrahsl/kafka-connect-mongodb/blob/master/src/main/java/at/grahsl/kafka/connect /mongodb/MongoDbSinkConnector.java Der Connector erstellt einfach #tasks Kopien der Konfiguration, ohne irgendwelche Aufgaben instanziieren. Also muss in den Kafka Connect Runtime-Klassen eine Task-Start-Logik vorhanden sein, oder? – pederpansen

Antwort

1

Ich habe dieses Problem konfrontiert. Wenn die Ressourcen für den Start einer SinkTask oder SourceTask geringer sind, kann dies passieren.

Der Arbeitsspeicher zugewiesene Arbeitsspeicher kann weniger Zeit haben. Standardmäßig werden Workern 250 MB zugewiesen. Bitte erhöhen Sie dies. Im Folgenden finden Sie ein Beispiel für die Zuweisung von 2 GB Arbeitsspeicher für den im verteilten Modus ausgeführten Worker.

KAFKA_HEAP_OPTS = "- Xmx2G" sh $ KAFKA_SERVICE_HOME/connect-verteilt $ KAFKA_CONFIG_HOME/connect-avro-distributed.properties

+0

Danke, ich werde prüfen, ob mein Problem auf ein Ressourcenproblem zurückzuführen ist! – pederpansen

+0

Ich habe gerade überprüft, mein Kafka Connect Docker Container hat 1 GB Speicher zugewiesen, ich glaube nicht, dass die Ressourcen die Ursache für meine Aufgabenfehler sind (5 Anschlüsse mit einer maximalen Gesamtanzahl von 8 Aufgaben). Aber haben Sie eine Verbesserung! – pederpansen

+0

Welcher Arbeitsspeicher ist dem Arbeiter zugewiesen? Verwenden Sie ps -ef | grep java und überprüfen Sie, welcher Arbeitsspeicher dem Worker zugewiesen ist. Der gesamte Docker hat 1 GB, aber was dem Arbeiter zugewiesen ist, ist wichtig. – Renukaradhya

Verwandte Themen