解决“ Kryo序列化失败:缓冲区溢出” Spark异常

问题描述 投票:4回答:2

我正在尝试运行Spark(Java)代码并得到错误

org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow. Available: 0, required: 27".

[其他帖子建议将缓冲区设置为最大值。当我尝试最大缓冲区值为512MB时,出现错误

java.lang.ClassNotFoundException: org.apache.spark.serializer.KryoSerializer.buffer.max', '512'

我该如何解决这个问题?

apache-spark kryo
2个回答
2
投票

属性名称正确,spark.kryoserializer.buffer.max,该值应包含单位,因此在您的情况下为512m。

此外,取决于您要在哪里设置配置,您可能必须写--conf spark.kryoserializer.buffer.max=512m。例如,使用Oozie worflow操作的spark-submit<spark-opts>...</spark-opts>以内。


0
投票

尝试使用“ spark.kryoserializer.buffer.max.mb”,“ 512”代替spark.kryoserializer.buffer.max”,“ 512MB

© www.soinside.com 2019 - 2024. All rights reserved.