41 votes

Quelle est la différence entre Spark Standalone, YARN et le mode local ?

Spark Standalone :

Dans ce mode, je me suis rendu compte que vous exécutez vos nœuds maître et travailleur sur votre machine locale.

Cela signifie-t-il qu'une instance de YARN s'exécute sur ma machine locale ? En effet, lorsque j'ai installé Spark, il était livré avec Hadoop et généralement YARN est également livré avec Hadoop, n'est-ce pas ? Et dans ce mode, je peux essentiellement simuler une version plus petite d'un cluster complet.

Mode local de l'étincelle :

C'est la partie qui me laisse perplexe. Pour le faire fonctionner dans ce mode, je fais val conf = new SparkConf().setMaster("local[2]") .

Dans ce mode, il n'utilise aucun type de gestionnaire de ressources (comme YARN), n'est-ce pas ? Il exécute simplement le job Spark dans le nombre de threads que vous fournissez à "local[2]"\ ?

42voto

vgunnu Points 434

Vous confondez Hadoop YARN et Spark.

YARN est une réécriture logicielle qui découple MapR de MapReduce de la gestion des ressources et de l'ordonnancement, d'une part, et du données, ce qui permet à Hadoop de prendre en charge des approches de de traitement plus variées et un plus large éventail d'applications.

Avec l'introduction de YARN, Hadoop s'est ouvert à l'exécution d'autres applications sur la plateforme.

En résumé, YARN est un "cadre de travail parallèle pour les données".

Apache Spark

Apache spark est un système de flux interactif par lots. Spark dispose d'une "pluggable persistent store". Spark peut fonctionner avec n'importe quelle couche de persistance.

Pour fonctionner, l'étincelle a besoin de ressources. En mode autonome, vous démarrez les travailleurs et le maître de spark et la couche de persistance peut être n'importe laquelle - HDFS, FileSystem, cassandra, etc. En mode YARN, vous demandez au cluster YARN-Hadoop de gérer l'allocation des ressources et la comptabilité.

Lorsque vous utilisez master comme local[2] vous demandez à Spark d'utiliser 2 cœurs et d'exécuter le driver et les workers dans la même JVM. En mode local, toutes les tâches liées au job Spark s'exécutent dans la même JVM.

La seule différence entre le mode autonome et le mode local est que dans le mode autonome, vous définissez des "conteneurs" pour le worker et le spark master à exécuter dans votre machine (vous pouvez donc avoir 2 workers et vos tâches peuvent être distribuées dans la JVM de ces deux workers), alors que dans le mode local, vous exécutez tout dans la même JVM sur votre machine locale.

34voto

kkunal Points 79

mode local
Pensez au mode local comme à l'exécution d'un programme sur votre ordinateur portable à l'aide d'une seule JVM. Il peut s'agir d'un programme java, scala ou python dans lequel vous avez défini et utilisé l'objet de contexte spark, importé les bibliothèques spark et traité les données résidant dans votre système.

YARN
En réalité, les programmes Spark sont conçus pour traiter des données stockées sur plusieurs machines. Les exécuteurs traitent les données stockées sur ces machines. Nous avons besoin d'un utilitaire pour surveiller les exécuteurs et gérer les ressources sur ces machines (clusters). Hadoop possède son propre gestionnaire de ressources à cet effet. Ainsi, lorsque vous exécutez un programme spark sur HDFS, vous pouvez tirer parti de l'utilitaire de gestion des ressources d'Hadoop, à savoir Yarn. Les propriétés Hadoop sont obtenues à partir de 'HADOOP_CONF_DIR' défini dans spark-env.sh ou bash_profile.

Spark Standalone
La distribution Spark est également accompagnée de son propre gestionnaire de ressources. Lorsque votre programme utilise le gestionnaire de ressources de Spark, le mode d'exécution est appelé Standalone. De plus, Spark nous permet de créer une architecture distribuée maître-esclave, en configurant le fichier properties dans le répertoire $SPARK_HOME/conf. Par défaut, il est configuré comme un cluster à un seul nœud, tout comme le mode de distribution psudo de Hadoop.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X