Introduction à l'architecture Apache Spark

Cet article définit les concepts d'Apache Spark Architecture et de ses composants. Il est considéré comme un traitement de données de pointe sur Apache Software Foundation. Spark est finalement considéré comme une autre possibilité pour Hadoop et Map Reduce.

Spark est une architecture open source avec des composants bien définis qui aident à analyser une grande quantité de données et fonctionne pour l'informatique distribuée. Spark est écrit en Scala avec des fonctionnalités activées telles que les API, R et a enrichi un ensemble de bibliothèques qui facilite le traitement des données. Apache Spark a son calcul de cluster individuel pour une accessibilité plus rapide et s'exécute sur différentes plates-formes.

Apache Spark dispose d'un large éventail de fonctionnalités telles que la vitesse d'exécution plus rapide en mémoire, s'adapte à plusieurs langages de programmation, a amélioré les techniques de mise en cache et prend en charge les requêtes SQL, l'apprentissage automatique. Il fonctionne sur les plates-formes telles que les systèmes d'exploitation Microsoft Windows et Linux. Leur déploiement indique qu'ils pourraient également fonctionner sur une seule machine et en mode cluster.

Architecture Apache Spark

L'architecture d'Apache spark a des composants faiblement couplés. Spark considère le processus maître / travailleur dans l'architecture et toutes les tâches fonctionnent sur le dessus du système de fichiers distribué Hadoop. Apache spark utilise Hadoop pour les processus de traitement et de stockage des données. Ils sont considérés comme un moteur de traitement de données en mémoire et permettent à leurs applications de s'exécuter sur des clusters Hadoop plus rapidement qu'une mémoire. Le traitement en mémoire empêche l'échec des E / S disque. Spark permet au travail hétérogène de fonctionner avec les mêmes données. Spark divise ses données en partitions, la taille des partitions fractionnées dépend de la source de données donnée.

Voici les deux principales implémentations d'Apache Spark Architecture:

1. Jeux de données distribués résilients (RDD)

Il est chargé de fournir l'API pour contrôler la mise en cache et le partitionnement. C'est un ensemble d'outils important pour le calcul de données. Il permet de recalculer les éléments en cas de pannes et considérés comme des données immuables et fait office d'interface. Les transformations et les actions sont les deux opérations effectuées par RDD.

2. Graphique acyclique dirigé (DAG)

Il forme une connexion séquentielle d'un nœud à un autre. Le pilote convertit le programme en DAG pour chaque tâche. L'écosystème Apache Spark comprend divers composants tels que le noyau API, Spark SQL, le streaming et le traitement en temps réel, MLIB et Graph X. Certaines terminologies à apprendre ici sont le shell Spark qui aide à lire de gros volumes de données, le contexte Spark - annuler, exécuter un travail, tâche (un travail), travail (calcul)

Composants de l'architecture Apache Spark

Les quatre principaux composants de Spark sont donnés ci-dessous et il est nécessaire de les comprendre pour le cadre complet.

  1. Pilote d'étincelle
  2. Exécuteurs
  3. Gestionnaire de cluster
  4. Nœuds de travail

Le diagramme suivant montre l'architecture et les composants de spark:

Fig: Mode autonome d'Apache Spark Architecture

Le flux d'exécution commence comme suit:

1. Spark Driver

La responsabilité du conducteur est de coordonner les tâches et les travailleurs pour la gestion. C'est un processus JVM d'application et considéré comme un nœud maître. Un pilote divise l'étincelle en tâches et planifications à exécuter sur les exécuteurs des clusters. Dans le diagramme, les programmes de pilote appellent l'application principale et créent un contexte d'étincelle (agit comme une passerelle) surveillent collectivement le travail travaillant au sein du cluster donné et se connectent à un cluster Spark Toutes les fonctionnalités et les commandes sont effectuées via le contexte d'étincelle.

Le contexte Spark est une entrée pour chaque session. Le pilote Spark a plus de composants pour exécuter des travaux dans les clusters. Les clusters Spark se connectent à différents types de gestionnaires de cluster et acquièrent simultanément des nœuds de travail pour exécuter et stocker des données. Dans le cluster, lorsque nous exécutons le processus, leur travail est subdivisé en étapes avec des étapes de gain en tâches planifiées.

2. Exécuteur testamentaire

Il est responsable de l'exécution d'un travail et stocke les données dans un cache. Au tout début, les exécuteurs s’enregistrent auprès des chauffeurs. Cet exécuteur dispose d'un certain nombre de créneaux horaires pour exécuter l'application simultanément. Les exécuteurs exécutent le processus de lecture / écriture sur des sources externes. L'exécuteur exécute le travail lorsqu'il a chargé des données et qu'elles ont été supprimées en mode inactif. L'exécuteur est activé par l'allocation dynamique et ils sont constamment inclus et exclus en fonction de la durée. Pendant l'exécution des tâches, les exécuteurs sont surveillés par un programme pilote. Les exécuteurs exécutent la tâche des utilisateurs dans le processus java.

3. Gestionnaire de cluster

Il aide à gérer les clusters qui ont un maître et un nombre d'esclaves. Il existe deux types de gestionnaires de cluster comme YARN et autonomes, tous deux gérés par Resource Manager et Node. le travail en cluster sur autonome nécessite Spark Master et le nœud de travail comme rôles. La responsabilité du gestionnaire de cluster est d'allouer des ressources et d'exécuter la tâche,

4. Nœuds de travail

Ce sont les nœuds esclaves; la responsabilité principale est d'exécuter les tâches et leur sortie est renvoyée au contexte d'étincelle. Ils communiquent avec le nœud maître sur la disponibilité des ressources. Le contexte Spark l'exécute et émet vers les nœuds de travail. Chaque nœud de travail est affecté à un étincelle de travail pour la surveillance. Ils effectuent le calcul très simplement en augmentant les nœuds de travail (1 à n nombre de travailleurs) afin que toutes les tâches soient effectuées en parallèle en divisant le travail en partitions sur plusieurs systèmes. L'autre tâche d'élément est considérée comme une unité de travail et affectée à un exécuteur, pour chaque étincelle de partition exécute une tâche.

Conclusion

Par conséquent, en comprenant Apache Spark Architecture, cela signifie comment implémenter facilement les mégadonnées. En fin de compte, nous avons appris leur accessibilité et leurs rôles de composants, ce qui est très bénéfique pour le cluster computing et la technologie des mégadonnées. Spark calcule les résultats souhaités d'une manière plus simple et préférée dans le traitement par lots.

Les caractéristiques distinctives de Spark, comme les jeux de données et les trames de données, aident à optimiser le code des utilisateurs. Une fonctionnalité importante comme le moteur SQL favorise la vitesse d'exécution et rend ce logiciel polyvalent. Par conséquent, nous avons vu des applications spark exécutées localement ou distribuées dans un cluster. Apache Spark est considéré comme un excellent complément dans un large éventail d'industries comme les mégadonnées. Pour résumer, spark aide à résoudre des tâches de calcul élevées.

Articles recommandés

Ceci est un guide de l'architecture Apache Spark. Nous discutons ici de l'introduction à l'architecture Apache Spark ainsi que des composants et du schéma fonctionnel d'Apache Spark. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Commandes Spark Shell
  2. Écosystème Apache Hadoop
  3. Architecture Big Data
  4. Qu'est-ce qu'Apache

Catégorie: