如何从flink cassandra连接器中排除cassandra数据stax驱动程序

时间:2018-07-16 14:27:44

标签: cassandra apache-flink

我在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”驱动程序

enter image description here

1 个答案:

答案 0 :(得分:3)

DataStax库位于 Flink-Cassandra-connector.jar 中,因此您无法排除它。如果您需要特定的DataStax版本,则可以使用以下命令针对该版本构建Flink源:

directory: flink-connectors/flink-connector-cassandra
command: mvn package -Ddriver.version=3.1.4