【发布时间】: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