上下文:我们有一个 flink 应用程序,它消耗来自 kafka 的数据并将数据下沉到 Scylla DB 上
应用程序启动时出现架构解析错误
为什么我们会收到此错误?
Flink 版本:1.15.4
Scylla DB 版本:scylla-enterprise-2022.2.11-0
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-cassandra_2.12</artifactId>
<version>1.15.4</version>
</dependency>
警告:所有非法访问操作将在未来版本中被拒绝 2023-08-11 09:16:04.567 [源:自定义源 -> 映射 -> 接收器:Cassandra 接收器 (7/9)#0] 错误 com.datastax.driver.core.SchemaParser - 解析表 system_distributed 的架构时出错。 service_levels:Cluster.getMetadata().getKeyspace("system_distributed").getTable("service_levels") 将丢失或不完整 com.datastax.driver.core.exceptions.UnresolvedUserTypeException:无法解析用户类型system_distributed.duration 在com.datastax.driver.core.DataTypeCqlNameParser.parse(DataTypeCqlNameParser.java:147) 在 com.datastax.driver.core.TableMetadata.build(TableMetadata.java:188) 在 com.datastax.driver.core.SchemaParser.buildTables(SchemaParser.java:176) 在 com.datastax.driver.core.SchemaParser.buildKeyspaces(SchemaParser.java:128) 在 com.datastax.driver.core.SchemaParser.refresh(SchemaParser.java:64) 在 com.datastax.driver.core.ControlConnection.refreshSchema(ControlConnection.java:341) 在 com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:271) 在 com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:199) 在 com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:77) 在 com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1414)
任何输入都会有帮助
Cannot resolve user type system_distributed.duration
消息表明底层驱动程序不知道duration
类型。
将驱动程序至少升级到v3.2.0,这是支持时长的初始版本。请注意,最新的 Java 驱动程序已经是 v4.17,因此如果 Flink 已经支持较新的驱动程序 API,最好切换到 v4.x。