2013-06-18 9 views
8

In spark-env.sh, è possibile configurare le seguenti variabili d'ambiente:Configurazione Spark: SPARK_MEM vs SPARK_WORKER_MEMORY

# - SPARK_WORKER_MEMORY, to set how much memory to use (e.g. 1000m, 2g) 
export SPARK_WORKER_MEMORY=22g 
[...] 
# - SPARK_MEM, to change the amount of memory used per node (this should 
# be in the same format as the JVM's -Xmx option, e.g. 300m or 1g) 
export SPARK_MEM=3g 

Se inizio un cluster autonomo con questo:

$SPARK_HOME/bin/start-all.sh 

I può vedere nella pagina web dell'interfaccia utente Spark Master che tutti gli operatori iniziano con solo 3 GB di RAM:

-- Workers Memory Column -- 
22.0 GB (3.0 GB Used) 
22.0 GB (3.0 GB Used) 
22.0 GB (3.0 GB Used) 
[...] 

Tuttavia, Ho specificato 22g come SPARK_WORKER_MEMORY in spark-env.sh

Sono un po 'confuso da questo. Probabilmente non capisco la differenza tra "nodo" e "lavoratore".

Qualcuno può spiegare la differenza tra le due impostazioni di memoria e cosa avrei potuto fare male?

Uso la scintilla-0.7.0. Vedi anche here per maggiori informazioni sulla configurazione.

risposta

10

Un cluster autonomo può ospitare più cluster Spark (ciascun "cluster" è associato a un particolare SparkContext). Ad esempio, è possibile avere un cluster che esegue kmi, un cluster che esegue Shark e un altro che esegue un data mining interattivo.

In questo caso, il 22 GB è la quantità totale di memoria allocata al cluster autonomo Spark e la particolare istanza di SparkContext utilizza 3 GB per nodo. Quindi puoi creare altri 6 SparkContext utilizzando fino a 21 GB.

Problemi correlati