本部分针对使用 Cloud Storage Sink 连接器时遇到的常见问题提供了问题排查指南。
反序列化配置有误
如果连接器的转换器与 Kafka 中的数据不匹配,连接器会失败,并显示类似于以下内容的错误消息:
org.apache.kafka.connect.errors.DataException: Converting byte[] to Kafka
Connect data failed due to serialization error:
如需解决此问题,请确保连接器的键和值转换器与连接器从 Kafka 读取的数据相匹配。
例如,如果您将格式输出类型设置为 csv,并将值转换器设置为 JsonConverter,则可能会看到以下错误:
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)
出现此错误是因为 CSV 输出需要 ByteArrayConverter 作为值转换器,而不是 JsonConverter。如需了解详情,请参阅 Cloud Storage Sink 连接器的工作原理。
日志中的堆栈轨迹可能有助于找到根本原因。例如,以下日志条目表示在转换 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
缺少 Cloud Storage 存储桶权限
如果 Managed Kafka 服务账号没有写入 Cloud Storage 存储桶的权限,连接器会失败并显示类似如下的错误消息:
org.apache.kafka.connect.errors.ConnectException:
com.google.cloud.storage.StorageException: 403 Forbidden
如需解决此问题,请向 Managed Kafka 服务账号授予 Storage Object Creator 角色 (roles/storage.objectCreator)。如需了解详情,请参阅授予向 Cloud Storage 存储桶写入数据的权限。