【问题标题】:saveToCassandra with spark-cassandra connector throws java.lang.ClassCastException带有 spark-cassandra 连接器的 saveToCassandra 抛出 java.lang.ClassCastException
【发布时间】:2016-09-14 23:22:06
【问题描述】:

在尝试将数据保存到 Cassandra(在 Scala 中)时,出现以下异常:

java.lang.ClassCastException: com.datastax.driver.core.DefaultResultSetFuture 无法转换为 com.google.common.util.concurrent.ListenableFuture

请注意,我并非每次都收到此错误,但它偶尔会随机出现,这使得它在生产中更加危险。

我正在使用 YARN,并且已对 com.google.** 进行了着色以避免 Guava 符号冲突。

这里是sn-p的代码:

rdd.saveToCassandra(keyspace,"movie_attributes", SomeColumns("movie_id","movie_title","genre"))

任何帮助将不胜感激。

更新 根据要求从 pom 文件中添加详细信息:

<dependency>
    <groupId>com.datastax.spark</groupId>
    <artifactId>spark-cassandra-connector_2.10</artifactId>
    <version>1.5.0</version>
</dependency>
<dependency>
    <groupId>com.datastax.spark</groupId>
    <artifactId>spark-cassandra-connector-java_2.10</artifactId>
    <version>1.5.0</version>
</dependency>

**Shading guava**

<relocation> <!-- Conflicts between Cassandra Java driver and YARN -->
    <pattern>com.google</pattern>
    <shadedPattern>oryx.com.google</shadedPattern>
    <includes>
         <include>com.google.common.**</include>
    </includes>
 </relocation>

Spark 版本:1.5.2 Cassandra 版本:2.2.3

【问题讨论】:

  • 你能分享一下你正在使用的 Cassandra 版本、连接器版本和 spark 版本,以及你是如何对库进行着色的吗?
  • @Christophe,我已更新问题以反映组件版本号。
  • 我也有同样的问题。它发生在单元测试中。在 IntelliJ 中运行测试时,它可以工作,但 sbt myProject/test 失败。

标签: scala apache-spark spark-cassandra-connector


【解决方案1】:

几乎所有从事 C* 和 Spark 工作的人都见过这类错误。根本原因解释here

C* 驱动依赖于一个相对较新版本的番石榴,而 Spark 依赖于一个较旧的番石榴。要在连接器 1.6.2 之前解决此问题,您需要在应用程序中显式嵌入 C* 驱动程序和 guava。

从 1.6.2 和 2.0.0-M3 开始,默认情况下连接器附带正确的 C* 驱动程序和番石榴阴影。因此,您应该可以只在项目中包含连接器工件。

如果您的 Spark 应用程序使用其他依赖于 C* 驱动程序的库,事情就会变得棘手。然后,您将必须手动包含未着色版本的连接器、正确的 C* 驱动程序和着色番石榴,并部署一个 fat jar。您基本上制作了自己的连接器包。在这种情况下,您不能再使用 --package 来启动 Spark 集群。

tl;博士

使用连接器 1.6.2/2.0.0-M3 或更高版本。 99% 你应该没问题。

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 2020-04-27
    • 2019-10-26
    • 2017-01-13
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2016-02-16
    • 2022-07-07
    相关资源
    最近更新 更多