2016-04-25 13 views
8

Sto imparando Spark su AWS EMR. Nel processo sto cercando di capire la differenza tra il numero di esecutori (- num-executors) e executor core (--executor-core). Qualcuno può dirmi qui?YARN: Qual è la differenza tra numero di esecutori e core dell'esecutore in Spark?

Anche quando sto cercando di inviare il seguente lavoro, sto ottenendo errore:

spark-submit --deploy-mode cluster --master yarn --num-executors 1 --executor-cores 5 --executor-memory 1g -–conf spark.yarn.submit.waitAppCompletion=false wordcount.py s3://test/spark-example/input/input.txt s3://test/spark-example/output21 

Error: Unrecognized option: -–conf 

risposta

8

Numero di esecutori è il numero di contenitori distinti filato (processi penso/JVM) che verranno eseguiti l'applicazione .

Numero di core degli executor è il numero di thread che si ottiene all'interno di ciascun executor (contenitore).

Quindi il parallelismo (numero di thread/attività concorrenti in esecuzione) dell'applicazione spark è #executors X #executor-cores. Se hai 10 esecutori e 5 esecutori-core avrai (si spera) 50 attività in esecuzione contemporaneamente.

+0

Qual è la differenza tra executor-core e spark.executor.cores? – rileyss

+1

@rileyss sono sinonimi. Quello è usato nelle impostazioni di configurazione mentre l'altro è stato usato quando si aggiunge il parametro come argomento della riga di comando. Ho appena usato uno dei due nell'esempio qui, ma non c'era alcun motivo particolare per cui ho scelto l'uno rispetto all'altro. – marios

Problemi correlati