我在cassandra sink相关代码中遇到了运行时异常:
07/16/2018 17:09:48 Job execution switched to status FAILING.
java.lang.NoSuchMethodError: com.datastax.driver.core.BoundStatement.set(ILjava/lang/Object;Lorg/apache/flink/cassandra/shaded/com/google/common/reflect/TypeToken;)Lcom/datastax/driver/core/BoundStatement;
我还有另一个依赖项,该依赖项还使用了datastax驱动程序以及cassandra-flink连接器。
我试图从flink cassandra连接器中排除datastax驱动程序,但未按预期工作
我的SBT依赖关系如下:
val datafeedsDeltaStreamDeps: Seq[ModuleID] = commonDependencies ++ flinkDeps ++ Seq(
"org.apache.flink" %% "flink-connector-cassandra" % "1.4.1" excludeAll ExclusionRule(organization = "com.datastax"), <<< I tried to exclude the data stax from the flink cassandra connector
"com.dy.productfeed" %% "feedsinterface" % "0.4.0", << this also has a cassandra dependency in it
CommonDependencies.statsdClient
)
但是我仍然在flink包下看到“ cassandra”驱动程序
答案 0 :(得分:3)
DataStax库位于 Flink-Cassandra-connector.jar 中,因此您无法排除它。如果您需要特定的DataStax版本,则可以使用以下命令针对该版本构建Flink源:
directory: flink-connectors/flink-connector-cassandra
command: mvn package -Ddriver.version=3.1.4