Quels sont les concurrents dApache Spark?


Meilleure réponse

Pour ce qui concerne le framework dans son ensemble: en ce moment Apache Spark a une longueur davance sur ses concurrents , en raison de certaines caractéristiques comme limplémentation (et lintégration) doutils différents et très utiles (Spark SQL et MLlib pour nen nommer que deux) et la possibilité de stocker des données intermédiaires dans les RDD. Pour cette raison, de nombreux développeurs se concentrent dessus, et je suppose que jusquà ce quune nouvelle percée dans la technologie sous-jacente se produise, tout concurrent sera négligeable.

Différemment, si vous considérez les implémentations uniques sur Apache Spark, vous pouvez identifier certains concurrents: H2O est un challenger de Spark MLlib, Storm (a souligné par Joe) est une alternative au streaming Spark, et il existe plusieurs moteurs de type SQL qui peuvent être comparés à Spark SQL .

Réponse

Voici quelques JARGONS dApache Spark que jutiliserai.

Travail: – Un morceau de code qui lit une entrée de HDFS ou local, effectue un calcul sur les données et écrit des données de sortie.

Étapes: -Les emplois sont divisés en étapes . Les étapes sont classées comme une carte ou réduisent les étapes (cest plus facile à comprendre si vous avez travaillé sur Hadoop et que vous souhaitez établir une corrélation). Les étapes sont divisées en fonction des limites de calcul, tous les calculs (opérateurs) ne peuvent pas être mis à jour en une seule étape. Cela se passe en plusieurs étapes.

Tâches: – Chaque étape comporte des tâches, une tâche par partition. Une tâche est exécutée sur une partition de données sur un exécuteur (machine).

DAG – DAG signifie Directed Acyclic Graph, dans le contexte actuel, cest un DAG dopérateurs.

Executor – Le processus responsable de lexécution dune tâche.

Driver – Le programme / processus responsable de lexécution du Job sur Spark Engine

Master – La machine sur laquelle le programme Driver sexécute

Slave – La machine sur laquelle sexécute le programme Executor

Tous les jobs dans spark comprennent une série dopérateurs et sexécutent sur un ensemble de données. Tous les opérateurs dun job sont utilisés pour construire un DAG (Directed Acyclic Graph). Le DAG est optimisé en réorganisant et en combinant les opérateurs lorsque cela est possible. Par exemple, supposons que vous deviez soumettre un travail Spark contenant une opération de mappage suivie dune opération de filtrage. Loptimiseur Spark DAG réorganiserait lordre de ces opérateurs, car le filtrage réduirait le nombre denregistrements devant subir une opération de carte.

Spark a une petite base de code et le système est divisé en plusieurs couches. Chaque couche a des responsabilités. Les calques sont indépendants les uns des autres.

  1. Le premier calque est le interpréteur , Spark utilise un interpréteur Scala, avec quelques modifications.
  2. Lorsque vous entrez votre code dans la console Spark (création de RDD et application dopérateurs ), Spark crée un graphique dopérateur.
  3. Lorsque lutilisateur exécute une action (comme collect), le graphique est soumis à un planificateur DAG. Le planificateur DAG divise le graphique dopérateur en étapes (cartographier et réduire).
  4. Une étape est composée de tâches basées sur des partitions des données dentrée. Le planificateur DAG relie les opérateurs pour optimiser le graphique. Par exemple, de nombreux Les opérateurs de carte peuvent être planifiés en une seule étape. Cette optimisation est essentielle aux performances de Sparks. Le résultat final dun planificateur DAG est un ensemble détapes.
  5. Les étapes sont transmises à Planificateur de tâches . Le planificateur de tâches lance les tâches via gestionnaire de cluster . (Spark Standalone / Yarn / Mesos). Le planificateur de tâches ne connaît pas les dépendances entre les étapes.
  6. Le Worker exécute les tâches sur lesclave. Une nouvelle JVM est démarrée par JOB. Le worker ne connaît que le code qui lui est transmis.

Spark met en cache les données à traiter, ce qui me permet de les traiter 100 fois plus rapidement que hadoop. Spark utilise Akka pour le multithreading, gestion de létat de lexécuteur, planification des tâches. Il utilise Jetty pour partager des fichiers (Jars et autres fichiers), Http Broadcast, exécuter Spark Web UI. Spark est hautement configurable et est capable dutiliser les composants existants déjà existants dans Hadoop Eco-System. Cela a permis à Spark de croître de manière exponentielle et, en peu de temps, de nombreuses organisations lutilisent déjà en production.

Vous pouvez consulter

pour comprendre les choses plus en détail.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *