2014-10-30 11 views

risposta

14

Prima di tutto solo poche parole sui termini. Spark master è un'applicazione che coordina l'allocazione delle risorse da parte degli slave. Il Maestro non esegue alcun calcolo. Il Master è solo un gestore delle risorse.

Spark worker è un'applicazione sul nodo worker che coordina le risorse su un dato nodo worker.

Spark executor è un'applicazione creata da spark worker che esegue attività sul nodo worker per il driver.

Controllare questo documento per ulteriori dettagli - http://spark.apache.org/docs/latest/cluster-overview.html

spark.executor.memory - è la quantità di memoria per l'esecutore. Questa memoria è stata utilizzata per un determinato compito dell'utente.

SPARK_WORKER_MEMORY - quanta memoria di sistema può essere utilizzata dall'operatore per creare esecutori sul nodo. Ad esempio, hai 64 GB sul nodo. Hai impostato SPARK_WORKER_MEMORY su 60 GB. Ciò significa che è possibile creare esecutori 2 x 30g o 10 x 6gb executors e così via.

SPARK_MEM AFAIK non è più utilizzato. Non riesco a trovarlo nei documenti correnti

SPARK_MASTER_MEMORY è memoria per il master. non vanno ad alta :)

SPARK_WORKER_CORES è il numero totale di nuclei per essere utilizzati da esecutori da ciascun lavoratore

SPARK_WORKER_INSTANCES è il numero di addetti per nodo lavoratore.

Tutti questi parametri sono descritti qui - http://spark.apache.org/docs/latest/spark-standalone.html

+0

Grazie @ 1esha, se SPARK_WORKER_MEMORY = 60gb, e ci vogliono 2 esecutori allora dovrebbero spark.executor.memory = 30g, o sarà che essere impostato automaticamente? o può spark.executor.memory essere impostato su qualcos'altro come 10g e sarà SPARK_WORKER_MEMORY quindi essere modificato in 20 g con 2 esecutori? – Oscar

+0

Oscar, SPARK_WORKER_MEMORY è la memoria totale per gli executori per nodo. Se si hanno due nodi con 64 gb ciascuno e si desidera spendere fino a 60 gb per nodo per gli esecutori spark, impostare SPARK_WORKER_MEMORY su 60 gb. Questo alloca 60gb per nodo per gli esecutori. Quindi, nel tuo driver puoi impostare 'spark.executor.memory'. Specifica la quantità di memoria per nodo allocata da SPARK_WORKER_MEMORY. Se lo si imposta su 10 gb, sono necessari 20 gb totali - 10 gb da ciascun nodo. – 1esha