【问题标题】:Understanding Kryo serialization buffer overflow error了解 Kryo 序列化缓冲区溢出错误
【发布时间】:2018-04-01 04:24:03
【问题描述】:

我正在尝试理解以下错误,并且我正在客户端 ode 中运行。

 org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow. Available: 0, required: 61186304. To avoid this, increase spark.kryoserializer.buffer.max value.
        at org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:300)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

基本上我试图缩小问题的范围。 我的理解是否正确,这个错误发生在 spark 驱动程序端(我在 aws emr,所以我相信这将在 master 上运行)? 我应该看看spark.driver.memory

【问题讨论】:

    标签: scala apache-spark kryo


    【解决方案1】:

    不,问题是 kryo 的缓冲区没有足够的空间。您应该在属性文件中调整spark.kryoserializer.buffer.max,或者在您的 spark-submit 命令中使用--conf "spark.kryoserializer.buffer.max=128m"。 128m对你来说应该够大了。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2013-11-06
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    相关资源
    最近更新 更多