spark异常篇-OutOfMemory:GC overhead limit exceeded

执行以下代码时报错sql

# encoding:utf-8
from pyspark import SparkConf, SparkContext from pyspark.sql import SparkSession conf = SparkConf().setMaster('yarn') sc = SparkContext(conf=conf) spark = SparkSession(sc) rdd = spark.read.csv('/spark/gps/GPS1.csv') print rdd.count() print rdd.repartition(10000).count() print rdd.repartition(10000).collect()  # 报错 spark-OutOfMemory:GC overhead limit exceeded

执行命令spa

spark-submit --master yarn bigdata.py

报错内容.net

spark-OutOfMemory:GC overhead limit exceeded

 

在执行 count 时没什么问题,各类参数影响不大;可是在执行 collect 时,老是报错code

 

缘由分析

1. collect 致使数据回传 Driver,导致 Driver 内存溢出blog

解决方法是增长 Driver 内存内存

spark-submit --master yarn --executor-cores 4 --driver-memory 3G  bigdata.py

 

2. executor-core 数量太多,致使多个 core 之间争夺 GC 时间以及资源,最后致使大部分时间都花在了 GC 上utf-8

解决方法是减小 core 数量资源

spark-submit --master yarn --executor-cores 1  bigdata.py

 

 

 

 

参考资料:it

https://blog.csdn.net/amghost/article/details/45303315spark

相关文章
相关标签/搜索