Apache Beam-CassandraIO写入异步-2.6.0错误

时间:2018-10-11 21:08:11

标签: google-cloud-dataflow apache-beam

我正在使用以下用于Apache Beam的库来运行数据流作业,以从BigQuery读取数据并存储/写入到Cassandra。

  1. beam-sdks-java-io-cassandra-2.6.0
  2. beam-sdks-java-io-jdbc-2.6.0
  3. beam-sdks-java-io-google-cloud-platform-2.6.0
  4. beam-sdks-java-core-2.6.0
  5. google-cloud-dataflow-java-sdk-all-2.5.0
  6. google-api-client -1.25.0

由于beam-sdks-java-io-cassandra> 2.3版本支持saveAsync,因此我已将所有库升级到2.6.0。

库更新后,在将数据插入/保存到Cassandra时出现以下错误。

java.lang.NoSuchMethodError: com.datastax.driver.mapping.Mapper.saveAsync(Ljava/lang/Object;)Lorg/apache/beam/repackaged/beam_sdks_java_io_cassandra/com/google/common/util/concurrent/ListenableFuture;
    at org.apache.beam.sdk.io.cassandra.CassandraServiceImpl$WriterImpl.write(CassandraServiceImpl.java:435)
    at org.apache.beam.sdk.io.cassandra.CassandraIO$WriteFn.processElement(CassandraIO.java:493)

这似乎是来自Gauva和Cassandra Driver的ListenableFuture问题。

2 个答案:

答案 0 :(得分:2)

我对此有一种解决方法。使用beam-sdks-java-io-cassandra-2.4.0。 我正在努力解决这个问题。其他一些东西...将在这里更新。

更新:最有可能发现此问题。将修复程序推送到my own fork。但是,可能需要一些时间才能将其制作成PR并由Beam的人发布...如果有人想使用我构建的版本-您可以查看如何it's done here

答案 1 :(得分:-1)

进一步更新:

问题仍然没有解决。

更多信息可以在这里找到:https://issues.apache.org/jira/browse/BEAM-5723