Scintilla sulla comprensione del concetto di filato

Sto cercando di capire come funziona la scintilla sul cluster / cliente YARN. Ho la seguente domanda nella mia mente.

  1. È necessario che la scintilla venga installata su tutti i nodes del cluster di filati? Penso che dovrebbe essere perché i nodes worker nel cluster eseguono un’attività e dovrebbero essere in grado di decodificare il codice (spark API) nell’applicazione spark inviata al cluster dal driver?

  2. Dice nella documentazione “Assicurati che HADOOP_CONF_DIR o YARN_CONF_DIR punti alla directory che contiene i file di configurazione (lato client) per il cluster Hadoop”. Perché il nodo client deve installare Hadoop quando invia il lavoro al cluster?

Stiamo eseguendo lavori spark su YARN (usiamo HDP 2.2).

Non abbiamo installato la scintilla sul cluster. Abbiamo solo aggiunto il jar di assemblaggio Spark all’HDFS.

Ad esempio per eseguire l’esempio Pi:

 ./bin/spark-submit \ --verbose \ --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ --conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \ --num-executors 2 \ --driver-memory 512m \ --executor-memory 512m \ --executor-cores 4 \ hdfs://master:8020/spark/spark-examples-1.3.1-hadoop2.6.0.jar 100 

--conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar – Questa configurazione dice al filato di prendere il gruppo scintilla. Se non lo usi, caricherà il barattolo da dove hai lanciato spark-submit .

Informazioni sulla seconda domanda: il nodo client non ha bisogno di Hadoop installato. Ha solo bisogno dei file di configurazione. Puoi copiare la directory dal tuo cluster al tuo cliente.

Aggiungendo ad altre risposte ..

  1. È necessario che la scintilla venga installata su tutti i nodes del cluster di filati?

No , se il lavoro spark è in programmazione su YARN (modalità client o cluster ). L’installazione di Spark è necessaria in molti nodes solo per la modalità standalone .

Queste sono le visualizzazioni delle modalità di distribuzione delle app scintilla.

Spark Standalone Cluster Spark modalità standalone

In modalità cluster , il driver si troverà in uno dei nodes Spark Worker mentre nella modalità client sarà all’interno della macchina che ha avviato il lavoro .


Modalità cluster YARN Modalità cluster YARN

FILA la modalità client FILA la modalità client

Questa tabella offre un elenco sintetico delle differenze tra queste modalità:

differenze tra le modalità Standalone, YARN Cluster e YARN Client

fonte di foto

  1. Dice nella documentazione “Assicurati che HADOOP_CONF_DIR o YARN_CONF_DIR punti alla directory che contiene i file di configurazione (lato client) per il cluster Hadoop”. Perché il nodo client deve installare hadoop quando sta inviando il lavoro al cluster?

L’installazione di Hadoop non è obbligatoria ma le configurazioni sono !. Questi potrebbero essere i due motivi principali.

  • La configurazione contenuta nella directory HADOOP_CONF_DIR verrà distribuita al cluster HADOOP_CONF_DIR in modo che tutti i contenitori utilizzati dall’applicazione utilizzino la stessa configurazione.
  • In modalità YARN, l’indirizzo di ResourceManager viene prelevato dalla configurazione di Hadoop ( yarn-default.xml ). Pertanto, il parametro --master è yarn .

Aggiornamento: (2017-01-04)

Spark 2.0+ non richiede più un jar di assemblaggio grasso per l’implementazione della produzione. fonte

1 – Spark se segue s slave / master architecture. Quindi sul tuo cluster, devi installare un master spark e N spark slaves. È ansible eseguire la scintilla in modalità standalone. Ma l’uso dell’architettura Yarn ti darà dei benefici. C’è una spiegazione molto buona qui: http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/

2- È necessario se si desidera utilizzare Yarn o HDFS ad esempio, ma come ho detto prima è ansible eseguirlo in modalità standalone.