Soluciona problemas relacionados con un conector de receptor de Cloud Storage

En esta sección, se proporciona orientación para solucionar problemas comunes que se producen cuando se usa un conector de receptor de Cloud Storage.

La deserialización está mal configurada

Si los convertidores del conector no coinciden con los datos de Kafka, el conector fallará con un mensaje de error similar al siguiente:

org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka
Connect data failed due to serialization error: 

Para resolver este problema, asegúrate de que los convertidores de claves y valores del conector coincidan con los datos que el conector lee de Kafka.

Por ejemplo, si estableces el tipo de salida de formato en csv y el convertidor de valores en JsonConverter, es posible que veas el siguiente error:

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)

Este error se produce porque la salida CSV requiere ByteArrayConverter para el convertidor de valores, no JsonConverter. Para obtener más información, consulta Cómo funciona un conector de receptor de Cloud Storage.

El registro de seguimiento de pila puede ayudar a ubicar la causa raíz. Por ejemplo, la siguiente entrada de registro indica un problema con la conversión de un carácter UTF-32:

Caused by: org.apache.kafka.common.errors.SerializationException:
java.io.CharConversionException: Invalid UTF-32 character 0x31d086a
(above 0x0010ffff) at char #1, byte #7

Faltan permisos del bucket de Cloud Storage

Si la cuenta de servicio de Kafka administrado no tiene permiso para escribir en el bucket de Cloud Storage, el conector fallará y mostrará un mensaje de error similar al siguiente:

org.apache.kafka.connect.errors.ConnectException:
com.google.cloud.storage.StorageException: 403 Forbidden

Para resolver este problema, otorga el rol de Creador de objetos de Storage (roles/storage.objectCreator) a la cuenta de servicio administrada de Kafka. Para obtener más información, consulta Otorga permisos para escribir en el bucket de Cloud Storage.

¿Qué sigue?