gpt4 book ai didi

java - 在 Spark 1.6.0 上,获取与 spark.driver.maxResultSize 相关的 org.apache.spark.SparkException

转载 作者:行者123 更新时间:2023-11-30 10:45:44 26 4
gpt4 key购买 nike

错误:

org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 1401 tasks (1024.3 MB) is bigger than spark.driver.maxResultSize (1024.0 MB)

我在调用 spark-shell 时遇到了这个异常

sqlContext.cacheTable("TableName")
sqlContext.sql("SELECT COUNT(*) FROM TableName").count()

我知道 collect() 可能会向驱动程序发送大结果,但这里只需要计数,所以我不明白为什么要使用 1024.3 MB 内存。如果表没有被缓存,则 sql 查询无一异常(exception)地工作正常。

最佳答案

当我将表格格式从文本文件更改为 Parquet 时,我遇到了这个问题。起初,工作运行得更快、更好。但是经过几次尝试,驱动程序抛出了熟悉的异常:

498 个任务的序列化结果总大小 (1024.8 MB) 大于 spark.driver.maxResultSize (1024.0 MB)

随着 spark.driver.maxResultSize 的增加(2g),我遇到了 GC 问题:

Exception in thread "broadcast-hash-join-9" java.lang.OutOfMemoryError: GC overhead limit exceeded at org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:535)

As the official doc description :

上限可能会导致驱动程序内存不足错误(取决于 spark.driver.memory 和 JVM 中对象的内存开销)。设置适当的限制可以保护驱动程序免受内存不足错误的影响。

因此增加 maxResultSizememoryOverhead

关于java - 在 Spark 1.6.0 上,获取与 spark.driver.maxResultSize 相关的 org.apache.spark.SparkException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com