【发布时间】:2015-12-30 09:13:46
【问题描述】:
我使用 pyspark 1.5.0 版和 Cloudera 5.5.0。除了我使用sc.wholeTextFiles 时,所有脚本都运行良好。使用这个命令会报错:
Kryo Serialization failed: Buffer overflow. Available:0, required: 23205706. To avoid this, increase spark.kryoserializer.buffer.max
但是,我在 spark web UI 中找不到属性 spark.kryoserializer.buffer.max;它不在 Spark Web UI 中的 Environment 选项卡下。此页面中唯一的“kryo”是名称spark.serializer 的值org.apache.spark.selializer.KryoSerializer。
为什么我看不到这个属性?以及如何解决这个问题?
编辑
原来 Kryo 错误是由 向外壳打印引起的。不打印,错误其实是java.io.IOExceptionL Filesystem closed!
该脚本现在可以对一小部分数据正常工作,但在所有数据(大约500GB、10,000 files)上运行它会返回此错误。
我尝试传入属性--conf "spak.yarn.executor.memoryOverhead=2000",似乎它允许读取稍大部分的数据,但最终仍然无法读取完整数据。在出现错误之前需要运行 10-15 分钟。
RDD很大,但即使只对它做.count()也会产生错误。
【问题讨论】:
标签: apache-spark pyspark