Spark
Spark
Spark
Préparé par :
Pr. Noura AHERRAHROU
Introduction L’écosystème Batch vs. Le moteur in-
Au Big Data Hadoop Streaming memory distribué
Processing d’Hadoop : Spark
Spark : Présentation
Spark : Présentation
Spark : Présentation
Spark : Présentation
Spark : Avantages
Performances supérieures à celles de Hadoop pour une large
quantité de problèmes; et presque universellement au moins
équivalentes pour le reste.
API simple et bien documentée; très simple à utiliser.
Paradigme plus souple qui permet un développement
conceptuellement plus simple.
Très intégrable avec d'autres solutions; peut très facilement
lire des données depuis de nombreuses sources, et propose
des couches d'interconnexion très faciles à utiliser pour le
reste (API dédiée Spark Streaming, Spark SQL).
APIs dédiées pour le traitement de problèmes en machine
learning (Spark MLlib) et graphes (Spark GraphX).
Introduction L’écosystème Batch vs. Le moteur in-
Au Big Data Hadoop Streaming memory distribué
Processing d’Hadoop : Spark
Spark : Performances
Fortement dépendantes du problème
mais d'une manière générale
supérieures à Hadoop. Dans le cas de
problèmes complexes, effectuant de
nombreuses opérations sur les
données et notamment sur les
mêmes données antérieures,
fortement supérieures (jusqu'à 100x
plus rapide).
Dans les faits, un programme Spark sera souvent
susceptible d'appeler plusieurs opérations « map », «
reduce », ou « shuffle », l'une à la suite de l'autre ou en
parallèle; et c'est là que Spark montre vraiment ses
avantages en terme de performances.
Introduction L’écosystème Batch vs. Le moteur in-
Au Big Data Hadoop Streaming memory distribué
Processing d’Hadoop : Spark
Spark : Inconvénients
Spark consomme beaucoup plus de mémoire vive que
Hadoop, puisqu'il est susceptible de garder une multitude de
RDDs en mémoire. Les serveurs nécessitent ainsi plus de
RAM.
Son cluster manager (« Spark Master ») est encore assez
immature et laisse à désirer en terme de déploiement /
haute disponibilité / fonctionnalités additionnelles du même
type; dans les faits, il est souvent déployé via Yarn, et
souvent sur un cluster Hadoop existant.
Introduction L’écosystème Batch vs. Le moteur in-
Au Big Data Hadoop Streaming memory distribué
Processing d’Hadoop : Spark
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
val txtFile = "README.md"
val txtData = sc.textFile(txtFile)
txtData.cache()
val wcData = txtData.flatMap(l => l.split(" ")).map(word =>
(word, 1)).reduceByKey(_ + _)
wcData.collect().foreach(println)
Introduction L’écosystème Batch vs. Le moteur in-
Au Big Data Hadoop Streaming memory distribué
Processing d’Hadoop : Spark