2017-04-17 66 views
-1

我是新来的火花,想知道如果有2个从属c4.8xlarge节点和1个c4.8x大型主节点,需要在火花作业和AWS中使用多少个内核和执行程序。我尝试了不同的组合,但不能理解这个概念。执行程序和内核的数量

谢谢。

+0

它的一切都取决于你的数据量和可用资源上。 – BDR

+0

假设我拥有所有可用资源,那么我会如何设置执行者和内核的数量? – Bharath

+0

你正在使用哪种资源?火花独立或纱线或中介? – BDR

回答

1

的Cloudera你们给了上

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

很好的解释。如果,假设你有你的节点(我认为这正是你的情况下)的16个内核,那么你给1纱线来管理此节点,那么你分15到3,所以每个执行者有5个核心。 此外,你有Java的开销,这是最大值(384M,0.07 * spark.executor.memory)。因此,如果每个节点有3个执行程序,那么JVM有3 * Max(384M,0.07 * spark.executor.memory)开销,其余可用于内存容器。 enter image description here

然而,在拥有众多用户群集中的同时工作,纱线可以把你的火花会出来一些容器,使得火花一路回去通过DAG并把所有的RDD到目前的状态,这是坏。这就是为什么您需要提前使用--num-executors,--executor-memory和--executor-cores稍微少一些来为其他用户提供一些空间的原因。但是,这不适用于您是唯一一个用户的AWS。

--executor内存18GB应为你工作BTW

更多细节上把你的群集参数 http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

+0

谢谢Sergio。会试试这个。 – Bharath