2017-04-17 68 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