2019独角兽企业重金招聘Python工程师标准>>>
Spark java.lang.outofmemoryerror gc overhead limit exceeded 与 spark OOM:java hea 博客分类: spark问题描述:
在使用Spark过程中,有时会因为数据增大,而出现下面两种错误:
Java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError:GC overhead limit exceeded
这两种错误之前我一直认为是executor的内存给的不够,但是仔细分析发现其实并不是executor内存给的不足,而是driver的内存给的不足。在standalone client模式下用spark-submit提交任务时(standalone模式部署时,默认使用的就是standalone client模式提交任务),我们自己写的程序(main)被称为driver,在不指定给driver分配内存时,默认分配的是512M。在这种情况下,如果处理的数据或者加载的数据很大(我是从Hive中加载数据),driver就可能会爆内存,出现上面的OOM错误。
解决方法:
参考:.html
方法一:在spark-submit中指定 --driver-memory memSize参数来设定driver的jvm内存大小,可以通过spark-submit --help查看其他可以设置的参数。
eg:
./spark-submit --master spark://7070 --class $MAIN_CLASS --executor-memory 3G --total-executor-cores 10 --driver-memory 2g --name $APP_NAME --conf aJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" "$SPARK_APP_JAR"
方法二:在spark_home/conf/目录中,将plate模板文件拷贝一份到/spark_home/conf目录下,命名为f,然后在里面设置 memSize属性来改变driver内存大小。
eg:
spark.master spark://master:7077 spark.default.parallelism 2g spark.serializer org.apache.spark.serializer.KryoSerializer spark.sql.shuffle.partitions 50
转载于:
本文发布于:2024-01-29 12:11:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650149715192.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |