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

相關文章
相關標籤/搜索