【问题标题】:Number of executors and cores执行者和核心的数量
【发布时间】:2017-04-20 05:17:16
【问题描述】:

我是 spark 新手,想知道如果我们有 2 个从属 c4.8xlarge 节点和 1 个 c4.8x 大型主节点,在 spark 作业和 AWS 中必须使用多少内核和执行程序。我尝试了不同的组合,但无法理解这个概念。

谢谢。

【问题讨论】:

  • 这一切都取决于您的数据量和可用资源。
  • 假设我有所有可用的资源,我将我的执行器和核心数设置为多少?
  • 您使用的是哪个资源? Spark 独立或纱线或 mesos ??
  • 我正在使用纱线。

标签: amazon-web-services apache-spark emr


【解决方案1】:

Cloudera 的家伙对此给出了很好的解释

https://www.youtube.com/watch?v=vfiJQ7wg81Y

如果,假设你的节点上有 16 个核心(我认为这正是你的情况),那么你给 yarn 1 个来管理这个节点,然后你将 15 分配到 3 个,所以每个执行器有 5 个核心。 此外,您的 java 开销为 Max(384M, 0.07*spark.executor.memory)。 因此,如果每个节点有 3 个执行器,那么 JVM 有 3*Max(384M, 0.07*spark.executor.memory) 开销,其余的可用于内存容器。

但是,在有许多用户同时工作的集群上,yarn 可以将您的 spark 会话推出一些容器,使 spark 一路返回通过 DAG 并将所有 RDD 带到当前状态,这很糟糕。这就是为什么您需要稍微减少 --num-executors、--executor-memory 和 --executor-cores 以提前给其他用户一些空间。但这不适用于您是唯一一个用户的 AWS。

--executor-memory 18Gb 应该对你有用

有关转动集群参数的更多详细信息 http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

【讨论】:

  • 谢谢塞尔吉奥。会试试这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 2016-12-24
  • 1970-01-01
相关资源
最近更新 更多