【问题标题】:Cassandra connector Apache Spark: local class incompatibleCassandra 连接器 Apache Spark:本地类不兼容
【发布时间】:2017-06-01 06:37:09
【问题描述】:

我正在尝试使用 Cassandra Spark 连接器将 rdd 加入 Cassandra Table:

samplerdd.joinWithCassandraTable(keyspace, CassandraParams.table)
      .on(SomeColumns(t.date as a.date,
        t.key as a.key)

它在独立模式下工作,但是当我在集群模式下执行时出现此错误:

Job aborted due to stage failure: Task 6 in stage 0.0 failed 4 times, most recent failure: Lost task 6.3 in stage 0.0 (TID 20, 10.10.10.51): java.io.InvalidClassException: com.datastax.spark.connector.rdd.CassandraJoinRDD; local class incompatible: stream classdesc serialVersionUID = 6155891939893411978, local class serialVersionUID = 1245204129865863681

我已经检查了master和slave中的jar,看起来是相同的版本。

我正在使用 spark 2.0.0、Cassandra 3.7、Cassandra-Spark 连接器 2.0.0 M2、 Cassandra 驱动核心 3.1.0 和 Scala 2.11.8

会发生什么?

【问题讨论】:

  • 您在某处存在依赖版本不匹配。寻找它。
  • 您提到“我已经检查了主从中的罐子”。你不应该把罐子放在奴隶身上。而是使用spark-submit --jars <deps...> 提交您的工作。见spark.apache.org/docs/latest/…
  • 我正在使用 .master("spark://sparkmaster:7077") 而不是 Spark-submit。我用 setJars 配置罐子。对吗?
  • 这也应该有效(我也是这样做的)。检查从站是否有 spark.cassandra.connector jar 的本地副本。
  • 它应该存在于任何从站中。让驱动程序处理分发正确的 jar。

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


【解决方案1】:

终于解决了。将 cassandra-driver-core 依赖项更新为 3.0.0 并正常工作。 – Manuel Valero 刚刚编辑

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 2016-11-28
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2013-05-25
    • 2018-03-11
    • 2015-09-04
    相关资源
    最近更新 更多