【问题标题】:How to set driver-memory and driver.memoryOverhead in spark-submit client modespark-submit客户端模式下如何设置driver-memory和driver.memoryOverhead
【发布时间】:2019-09-11 23:41:15
【问题描述】:

我正在使用 CDH 版本 CDH 5.13.3、spark-2.3.0。参考文档https://spark.apache.org/docs/2.3.0/configuration.html,我设置了驱动内存和驱动内存开销,但是不行

spark2-submit \
--class my.Main \
--master yarn \
--deploy-mode client \
--driver-java-options "-Ddriver-memory=5g" \
--conf spark.driver.memoryOverhead=3g \
--num-executors 33 \
--executor-cores 4 \
--executor-memory 8g \
--conf spark.executor.memoryOverhead=4g \

我希望 spark 作业在开始时获得 8g(驱动程序内存 5g + memoryOverhead 3g),但在 yarn ui 上它只有 2g

【问题讨论】:

    标签: apache-spark spark-submit


    【解决方案1】:

    您需要传递与执行程序内存相同的驱动程序内存,因此在您的情况下:

    spark2-submit \
    --class my.Main \
    --master yarn \
    --deploy-mode client \
    --driver-memory=5g \
    --conf spark.driver.memoryOverhead=3g \
    --num-executors 33 \
    --executor-cores 4 \
    --executor-memory 8g \
    --conf spark.executor.memoryOverhead=4g \
    

    此外,您在此处传递的值并不能保证并且取决于实际的集群配置。还要求更多内存意味着您的工作将等到您获得具有指定配置的执行程序。

    【讨论】:

    • 感谢您的回复。我试过了,还是不行。参考文档spark.apache.org/docs/2.3.0/configuration.html,注意:在客户端模式下,这个配置一定不能直接在你的应用程序中通过SparkConf设置,因为此时驱动JVM已经启动了。相反,请通过 --driver-memory 命令行选项或在您的默认属性文件中进行设置。
    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多