In diesem Abschnitt finden Sie Anleitungen zur Fehlerbehebung für häufige Probleme, die bei der Verwendung eines Cloud Storage-Sink-Connectors auftreten können.
Deserialisierung ist falsch konfiguriert
Wenn die Konvertierungen des Connectors nicht mit den Daten in Kafka übereinstimmen, schlägt der Connector mit einer Fehlermeldung ähnlich der folgenden fehl:
org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka
Connect data failed due to serialization error:
Um dieses Problem zu beheben, müssen die Schlüssel- und Wertkonverter für den Connector mit den Daten übereinstimmen, die der Connector aus Kafka liest.
Wenn Sie beispielsweise den Ausgabetyp des Formats auf csv und den Wertkonverter auf JsonConverter festlegen, wird möglicherweise der folgende Fehler angezeigt:
org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka
Connect data failed due to serialization error:
at org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:333)
at org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:91)
Dieser Fehler tritt auf, weil für die CSV-Ausgabe ByteArrayConverter für den Wertkonverter erforderlich ist, nicht JsonConverter. Weitere Informationen finden Sie unter Funktionsweise eines Cloud Storage-Sink-Connectors.
Der Stacktrace in den Logs kann helfen, die Ursache zu ermitteln. Der folgende Logeintrag weist beispielsweise auf ein Problem beim Konvertieren eines UTF-32-Zeichens hin:
Caused by: org.apache.kafka.common.errors.SerializationException:
java.io.CharConversionException: Invalid UTF-32 character 0x31d086a
(above 0x0010ffff) at char #1, byte #7
Fehlende Cloud Storage-Bucket-Berechtigungen
Wenn das Managed Kafka-Dienstkonto nicht berechtigt ist, in den Cloud Storage-Bucket zu schreiben, schlägt der Connector mit einer Fehlermeldung ähnlich der folgenden fehl:
org.apache.kafka.connect.errors.ConnectException:
com.google.cloud.storage.StorageException: 403 Forbidden
Um dieses Problem zu beheben, weisen Sie dem Managed Kafka-Dienstkonto die Rolle Storage-Objekt-Ersteller (roles/storage.objectCreator) zu. Weitere Informationen finden Sie unter Berechtigungen zum Schreiben in den Cloud Storage-Bucket erteilen.