【问题标题】:Using G1GC garbage collector with spark 2.3在 spark 2.3 中使用 G1GC 垃圾收集器
【发布时间】:2018-11-24 03:55:52
【问题描述】:

我正在尝试将 G1GC 垃圾收集器用于 spark 作业,但我得到了一个

Error: Invalid argument to --conf: -XX:+UseG1GC

我尝试使用这些选项,但无法使其正常工作

spark-submit --master spark://192.168.60.20:7077 --conf -XX:+UseG1GC /appdata/bblite-codebase/test.py

spark-submit --master spark://192.168.60.20:7077 -XX:+UseG1GC /appdata/bblite-codebase/test.py

从 spark 调用 G1GC 收集器的正确方法是什么?

【问题讨论】:

    标签: apache-spark pyspark garbage-collection g1gc


    【解决方案1】:

    JVM 选项应该作为spark.executor.extraJavaOptions / spark.driver.extraJavaOptions 传递,即。

     --conf "spark.executor.extraJavaOptions=-XX:+UseG1GC"
    

    【讨论】:

      【解决方案2】:

      这是您可以在驱动程序和执行程序中配置垃圾收集设置的方法。

      spark-submit --master spark://192.168.60.20:7077 \
       --conf "spark.driver.extraJavaOptions=-XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps" \
       --conf "spark.executor.extraJavaOptions=-XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps" \
       /appdata/bblite-codebase/test.py
      

      【讨论】:

        【解决方案3】:

        从Spark 2.4.3开始,这对驱动程序extraJavaOptions不起作用,会产生错误

        Conflicting collector combinations in option list; please refer to the release notes for the combinations allowed
        

        这是因为默认的spark-defaults.conf 包括

        spark.executor.defaultJavaOptions -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:OnOutOfMemoryError='kill -9 %p' -XX:+UseParallelGC -XX:InitiatingHeapOccupancyPercent=70
        spark.driver.defaultJavaOptions  -XX:OnOutOfMemoryError='kill -9 %p' -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:MaxHeapFreeRatio=70 -XX:+CMSClassUnloadingEnabled
        

        它已经包含了一个 GC 设置,并且设置了两个 GC 选项会导致它抱怨这个错误。所以你可能需要:

        --conf "spark.executor.defaultJavaOptions=-XX:+UseG1GC"
        --conf "spark.driver.defaultJavaOptions=-XX:+UseG1GC"
        

        并添加您想要传播的其他默认值。

        或者,您可以编辑 spark-defaults.conf 中的默认值以删除驱动程序/执行程序的 GC 默认值并强制在 extraJavaOptions 中指定它,具体取决于您的使用案例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-19
          • 1970-01-01
          • 1970-01-01
          • 2018-12-30
          • 1970-01-01
          • 2011-03-10
          • 2011-11-07
          • 2013-04-01
          相关资源
          最近更新 更多