【问题标题】:Spark-submit executor memory issueSpark-submit 执行器内存问题
【发布时间】:2017-11-18 20:45:22
【问题描述】:

我有一个 10 节点集群、8 个 DN(256 GB、48 个内核)和 2 个 NN。我有一个 spark sql 作业被提交到 yarn 集群。以下是我用于 spark-submit 的参数。 --num-executors 8 \ --executor-cores 50 \ --驱动内存20G\ --executor-内存 60G \ 从上面可以看出 executor-memory 是 60GB,但是当我检查 Spark UI 时显示的是 31GB。

1) 谁能解释一下为什么它显示的是 31GB 而不是 60GB。 2) 还有助于为上述参数设置最佳值。

【问题讨论】:

    标签: apache-spark apache-spark-sql hadoop-yarn


    【解决方案1】:

    我认为,

    分配的内存分为两部分: 1. 存储(缓存数据帧/表) 2.处理(你能看到的那个)

    31gb 是可用于处理的内存。 使用 spark.memory.fraction 属性来增加/减少可用于处理的内存。

    我建议将执行器核心减少到大约 8-10

    我的配置:

    spark-shell --executor-memory 40g --executor-cores 8 --num-executors 100 --conf spark.memory.fraction=0.2

    【讨论】:

    • --num-executors 100 ?我只有 8 个 DN。这会正常工作吗?我有 730.6 G 的文件要处理。 40G 执行器内存是否可以与连接和所有功能一起使用?
    猜你喜欢
    • 2016-11-15
    • 2019-01-16
    • 2022-12-07
    • 2019-07-16
    • 2015-02-04
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多