2014-10-27 22 views
5

Sto provando a configurare Apache-Spark su un piccolo cluster autonomo (1 nodo principale e 8 nodi slave). Ho installato la versione "pre-costruita" di spark 1.1.0 costruita su Hadoop 2.4. Ho impostato il ssh senza password tra i nodi ed ho esportato alcune variabili d'ambiente necessarie. Una di queste variabili (che è probabilmente più rilevante) è:apache spark, "impossibile creare qualsiasi directory locale"

export SPARK_LOCAL_DIRS=/scratch/spark/ 

Ho un piccolo pezzo di codice python che so opere con Spark. Posso eseguirlo localmente - sul mio desktop, non sul cluster - con:

$SPARK_HOME/bin/spark-submit ~/My_code.py 

Ho copiato il codice nel cluster. Poi, inizio tutti i processi dal nodo testa:

$SPARK_HOME/sbin/start-all 

E ognuno degli slave è elencato come esecuzione come xxxxx processo.

Se quindi si tenta di eseguire il mio codice con lo stesso comando di cui sopra:

$SPARK_HOME/bin/spark-submit ~/MY_code.py 

ottengo il seguente errore:

14/10/27 14:19:02 ERROR util.Utils: Failed to create local root dir in /scratch/spark/. Ignoring this directory. 
14/10/27 14:19:02 ERROR storage.DiskBlockManager: Failed to create any local dir. 

ho i permessi impostati sulla /scratch e /scratch/spark a 777 . Qualsiasi aiuto è molto apprezzato.

risposta

3

Il problema era che non mi ero reso conto che il nodo principale necessitava anche di una directory scratch. In ognuno dei miei 8 nodi di lavoro ho creato la directory local/scratch/spark, ma ho trascurato di farlo sul nodo master. L'aggiunta della directory ha risolto il problema.

+0

Ho anche un problema simile, ho una configurazione Ambari, puoi farmi sapere come identificare quale è un nodo principale? –