首页 > 解决方案 > 火花:java.io.InvalidClassException

问题描述

自从从本地 Spark 部署迁移到独立集群后,我遇到了以下异常:

java.io.InvalidClassException:org.apache.spark.sql.cassandra.CassandraSQLRow;本地类不兼容:流classdesc serialVersionUID = -6648071136076699828,本地类serialVersionUID = -1718118159864345582

我确切地知道它什么时候发生。当我将阴影 jar 从 build 的目标目录重新部署到 Spark master 而不实际重新编译 jar 时,就会发生这种情况。(这只是一个用于开发的便利脚本,显然不能在集群中工作)

但是,在这些情况下,我实际上并不了解此异常的原因。如果尚未重新编译该类,serialVersionUID 是如何更改的?

标签: apache-sparkcassandra

解决方案


我有不同版本的spark-cassandra-connector --packages 版本与我的 pom.xml 中的版本不同。后一种依赖可能在 Maven 的测试范围之外是不必要的


推荐阅读