【发布时间】:2019-08-10 08:49:08
【问题描述】:
我的问题:在 YARN master 中运行 Apache Spark 应用程序,将部署模式作为客户端或集群,executor-cores 是否应该始终设置为 1?
我正在使用200 data nodes 每个具有14 cores 的集群上运行一个处理数百万个数据的应用程序。当我在 YARN 上使用 2 executor-cores 和 150 executors 时,它运行完美,但其中一位集群管理员要求我使用 1 个执行器核心。他坚持认为 YARN 中的 Spark 应该与 1 个执行器核心一起使用,否则它将从其他用户那里窃取资源。他将我指向 Apache 文档上的这个页面,其中说 executor-core 的默认值是 1 对于 YARN。
https://spark.apache.org/docs/latest/configuration.html
那么,我们真的应该只使用 1 来作为执行器核心吗?
如果执行器使用 1 个核心,它们不是单线程的吗?
亲切的问候,
【问题讨论】:
-
它建议每个执行器更少的核心和更多的总执行器。这样并行性会更好。前任; 100个节点;每个都有 8 核和 16 GB 内存。推荐配置为 1core、2gbram、700executor。
标签: apache-spark hadoop-yarn apache-spark-2.0