zoukankan      html  css  js  c++  java
  • spark异常篇-OutOfMemory:GC overhead limit exceeded

    执行如下代码时报错

    # 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

    执行命令

    spark-submit --master yarn bigdata.py

    报错内容

    spark-OutOfMemory:GC overhead limit exceeded

    在执行 count 时没什么问题,各种参数影响不大;但是在执行 collect 时,总是报错

    原因分析

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

    解决方法是增加 Driver 内存

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

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

    解决方法是减少 core 数量

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

    参考资料:

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

  • 相关阅读:
    续上-选课系统
    第一个java web的课堂练习-开始
    子类与父类方法间的关系
    课后作业-3
    小结
    Java中子类与基类变量间的赋值
    今日总结
    今日总结
    今日总结
    今日总结
  • 原文地址:https://www.cnblogs.com/yanshw/p/12010729.html
Copyright © 2011-2022 走看看