Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Apache Spark无法反序列化群集上的'TopicPartition'_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark Apache Spark无法反序列化群集上的'TopicPartition'

Apache spark Apache Spark无法反序列化群集上的'TopicPartition',apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我使用spark-sql-kafka-0-10从kafka中读取带有spark2.4和scala2.11.12的批处理。因此,我的build.sbt文件具有以下依赖项 "org.apache.spark" %% "spark-core" % sparkVersion % "provided", "org.apache.spark" %% "spark-sql" % sparkVersion % "provided", "org.apache.spark" %% "spark-sql-kaf

我使用spark-sql-kafka-0-10从kafka中读取带有spark
2.4
和scala
2.11.12
的批处理。因此,我的
build.sbt
文件具有以下依赖项

"org.apache.spark"  %% "spark-core" % sparkVersion % "provided",
"org.apache.spark"  %% "spark-sql" % sparkVersion % "provided",
"org.apache.spark"  %% "spark-sql-kafka-0-10" % sparkVersion
我还使用了
sbt-assembly
插件来制作我的应用程序的胖jar。在本地spark上部署此jar文件时效果良好,如下所示,$FAT_jar指向我的程序集文件:

./spark-submit --class $MAIN_CLASS --master local --driver-class-path $FAT_JAR $FAT_JAR
但当我将它部署到集群上时(即使工人和主人都在同一台机器上),它会抛出关于
topicpartton
的反序列化问题的异常

如何在群集上运行:

./spark-submit \
  --master spark://spark-master:7077 \
  --class $MAIN_CLASS \
  --driver-class-path $FAT_JAR \
  --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0 \
  $FAT_JAR
我还尝试了
--jars
,我确信worker and master拥有
kafka客户端的保存版本,即
2.0.0

异常日志:

Caused by: java.io.InvalidClassException: org.apache.kafka.common.TopicPartition; class invalid for deserialization
        at java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(ObjectStreamClass.java:169)
        at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:874)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2043)
spark无法反序列化主题分区的原因以及如何解决它?

我找到了解决方案。 正如我将
SPARK\u DIST\u PATH
设置为
$(hadoop类路径)
,它包括
kafka-client-0.8
,这与
SPARK-sql-kafka-0-10
中使用的
kafka-client-2.0.0
不同。 我刚刚使用了hadoop的内置版本spark和unset
spark\u DIST\u PATH
来解决这个问题


不管怎样,我希望
spark.executor.userClassPathFirst
spark.driver.userClassPathFirst
能够帮助解决这个问题,但现在它们是实验性的

您是从驱动程序节点还是其他节点获取此信息?它们是否都使用相同的JVM(版本)?