Académique Documents
Professionnel Documents
Culture Documents
Objectifs de la session
Agenda
1. Outils de gestion de « grandes
volumes » de logs
2. Frameworks Big Data
o Hadoop/MapReduce (rappel)
o Apache Spark
o Apache Kafka et autres outils
3. Outils de déploiement et
d’automatisation
4
5
Introduction
• Une explosion des données
Volume of data/information created,
captured, copied, and consumed
worldwide from 2010 to 2024 (in
zettabytes).
Source:
https://www.statista.com/statistics/8
71513/worldwide-data-created/
Introduction (suite)
ELK Splunk
10
Source : https://github.com/elastic
11
Collecter
ELK Visualiser
Source : https://www.elastic.co/
12
Source : https://www.elastic.co/
13
Source : https://www.elastic.co/
14
Source : https://www.elastic.co/
16
Source : https://www.elastic.co/
17
Source : https://www.elastic.co/
18
Source : https://www.elastic.co/
19
Source : https://www.elastic.co/
20
Source : https://www.elastic.co/
21
Source : https://www.elastic.co/
22
Source : https://www.elastic.co/
23
Source : https://community.splunk.com/t5/Community/ct-p/en-us
24
Collecter
Splunk Chercher
Visualiser
Source : https://community.splunk.com/t5/Community/ct-p/en-us
25
Source : https://community.splunk.com/t5/Community/ct-p/en-us
26
27
Fondation Apache
28
Hadoop utilise principalement le disque, d’où l’importance du système de fichiers distribués HDFS.
HDFS est un élément central d’Hadoop utilisé comme stockage quelques soit le type d’algorithme utilisé
(MapReduce) ou autre.
30
• Apache Spark est un framework utilisé dans les environnements informatiques en cluster pour analyser le Big
Data. Cette plate-forme est devenue très populaire en raison de sa facilité d'utilisation et des vitesses de
traitement des données améliorées par rapport à Hadoop.
• Apache Spark est capable de répartir une charge de travail sur un groupe d'ordinateurs dans un cluster pour
traiter plus efficacement de grands ensembles de données. Ce moteur open source prend en charge un large
éventail de langages de programmation. Cela inclut Java, Scala, Python et R.
31
Large communauté
+1200 développeurs
35
MLlib GraphX
Spark par la pratique!
38
➔ A titre comparatif avec Hadoop MapReduce, le même calcul avait pris plus de 30 secondes, ce qui montre
par un exemple simple que Spark est beaucoup plus rapide que Hadoop.
39
./bin/run-example SparkPi 10
➔ L’exécution a pris environ 1.5 secondes pour la détermination de la valeur de Pi ou 10 est le nombre de partitions
à exécuter pour déterminer la valeur approximative de Pi (3.13992713992714).
40
➔ L’exécution via le script Python a pris environ 3 secondes avec une valeur de Pi estimée à 3.143240.
41
./bin/spark-submit examples/src/main/r/dataframe.R
Une exemple qui analyse des données démographiques pour en déterminer l'adolescent (âge de 13 à 19 ans ) parmi
cette liste. En sortie le programme affiche le nom des adolescents.
42
HDFS + Spark
Spark: avantages
Rapidité Simplicité
Un moteur unifié
Spark est livré avec des bibliothèques haut niveau qui prennent en charge les requêtes SQL, les données en flux, le machine
learning et le traitement de graphes. Ces bibliothèques standard permettent aux développeurs de gagner en productivité et
peuvent se combiner facilement pour créer des flux de travail complexes. Spark s'exécute sur Hadoop, Apache Mesos,
Kubernetes, de manière autonome ou dans le cloud. Il peut accéder à diverses sources de données.
44
Une plate-forme open source, moins coûteuse à exploiter. Une plate-forme open-source, mais s'appuie sur la
Coût Utilise du matériel grand public abordable. Trouver plus mémoire pour le calcul, ce qui augmente
facilement des professionnels Hadoop formés. considérablement les coûts d'exploitation.
Idéal pour le traitement par lots (mode batch). Utilise Convient pour l'analyse de données itérative en mode
Traitement des
MapReduce pour diviser un grand ensemble de données streaming. Fonctionne avec les RDD et les DAG pour
données
sur un cluster pour une analyse parallèle. exécuter des opérations.
Facilement évolutif en ajoutant des nœuds et des disques Un peu plus difficile à mettre à l'échelle car il repose sur la
Scalabilité pour le stockage. Prend en charge des dizaines de milliers RAM pour les calculs. Prend en charge des milliers de
de nœuds sans limite connue. nœuds dans un cluster.
Usage et langages de Plus convivial. Permet le mode shell interactif. Les API
Plus difficile à utiliser avec des langues moins supportées.
programmation peuvent être écrites en Java, Scala, R, Python, Spark
Utilise Java ou Python pour les applications MapReduce.
supportés SQL.
# Nodes 2100 206 190 Cela signifie qu'Apache Spark a trié les mêmes
# Cores 50400 physical 6592 virtualized 6080 virtualized données 3 fois plus rapidement en utilisant 10
fois moins de ressources matérielles (machines).
Cluster disk 3150 GB/s
618 GB/s 570 GB/s Source:
throughput (est.)
https://databricks.com/blog/2014/11/05/spark-officially-sets-a-new-
record-in-large-scale-sorting.html
Sort Benchmark
Yes Yes No
Daytona Rules
Le facteur le plus important dans la catégorie de coût est le matériel sous-jacent dont vous avez besoin pour exécuter
ces outils. Étant donné qu'Hadoop s'appuie sur n'importe quel type de stockage sur disque pour le traitement des
données, le coût de son exécution est relativement faible.
D'autre part, Spark dépend des calculs en mémoire pour le traitement des données en temps réel. Ainsi, faire
tourner des nœuds avec beaucoup de RAM augmente considérablement le coût total de possession.
Une autre préoccupation est le développement d'applications. Hadoop existe depuis plus longtemps que Spark et il
est moins difficile de trouver des développeurs de logiciels.
Les points ci-dessus indiquent que l'infrastructure Hadoop est plus rentable. Bien que cette affirmation soit correcte,
nous devons nous rappeler que Spark traite les données beaucoup plus rapidement. Par conséquent, il faut un plus
petit nombre de machines pour effectuer la même tâche.
48
L'objectif d'Hadoop est de stocker des données sur des disques, puis de les analyser en
parallèle par lots dans un environnement distribué. MapReduce ne nécessite pas une grande
quantité de RAM pour gérer de gros volumes de données. Hadoop s'appuie sur du matériel
de tous les jours pour le stockage, et il est mieux adapté au traitement linéaire des données.
Apache Spark fonctionne avec des ensembles de données distribués (RDD) résilients. Un
RDD est un ensemble distribué d'éléments stockés dans des partitions sur des nœuds à
travers le cluster. La taille d'un RDD est généralement trop grande pour être gérée par un
seul nœud. Par conséquent, Spark partitionne les RDD vers les nœuds les plus proches et
effectue les opérations en parallèle. Le système suit toutes les actions effectuées sur un RDD
à l'aide d'un graphique acyclique dirigé (DAG).
Avec les calculs en mémoire et les API de haut niveau, Spark gère efficacement les flux en
direct de données non structurées. De plus, les données sont stockées dans un nombre
prédéfini de partitions. Un nœud peut avoir autant de partitions que nécessaire, mais une
partition ne peut pas être étendue à un autre nœud.
49
▪ Hadoop a la tolérance aux pannes comme base de son fonctionnement. Il réplique les données plusieurs fois sur
les nœuds. En cas de problème, le système reprend le travail en créant les blocs manquants à partir d'autres
emplacements. Les nœuds maîtres suivent l'état de tous les nœuds esclaves. Enfin, si un nœud esclave ne répond
pas aux pings d'un maître, le maître attribue les travaux en attente à un autre nœud esclave.
▪ Spark utilise des blocs RDD pour atteindre la tolérance aux pannes. Le système suit la manière dont l'ensemble de
données immuable est créé. Ensuite, il peut redémarrer le processus en cas de problème. Spark peut reconstruire
les données dans un cluster en utilisant le suivi DAG des workflows. Cette structure de données permet à Spark de
gérer les défaillances dans un écosystème de traitement de données distribué.
50
Les clusters peuvent facilement s'étendre et augmenter la puissance de calcul en ajoutant plus de serveurs au réseau.
En conséquence, le nombre de nœuds dans les deux frameworks peut atteindre des milliers. Il n'y a pas de limite
ferme au nombre de serveurs que vous pouvez ajouter à chaque cluster et à la quantité de données que vous pouvez
traiter.
Certains des chiffres confirmés incluent 8000 machines dans un environnement Spark avec des pétaoctets de
données. Quand on parle de clusters Hadoop, ils sont bien connus pour accueillir des dizaines de milliers de
machines et près d'un exaoctet de données.
51
La raison en est que Hadoop MapReduce divise les tâches en tâches parallèles qui peuvent être trop volumineuses
pour les algorithmes d'apprentissage automatique. Ce processus crée des problèmes de performances d'E/S dans ces
applications Hadoop.
La bibliothèque Mahout est la principale plate-forme d'apprentissage automatique dans les clusters Hadoop. Mahout
s'appuie sur MapReduce pour effectuer le clustering, la classification et la recommandation. Samsara a commencé à
remplacer ce projet.
Spark est livré avec une bibliothèque d'apprentissage automatique par défaut, MLlib. Cette bibliothèque effectue des
calculs ML itératifs en mémoire. Il comprend des outils pour effectuer la régression, la classification, la persistance, la
construction de pipeline, l'évaluation et bien d'autres.
Spark avec MLlib s'est avéré neuf fois plus rapide qu'Apache Mahout dans un environnement basé sur disque
Hadoop. Lorsque vous avez besoin de résultats plus efficaces que ceux proposés par Hadoop, Spark est le meilleur
choix pour le Machine Learning.
52
• Les deux frameworks jouent un rôle important dans les applications Big Data. Bien qu'il semble que Spark soit la plate-forme
incontournable avec sa vitesse et son mode convivial, certains cas d'utilisation nécessitent l’usage Hadoop plutôt que Spark. Cela est
particulièrement vrai lorsqu'un grand volume de données doit être analysé.
• Spark nécessite un budget de maintenance plus important, mais nécessite également moins de matériel pour effectuer les mêmes
tâches que Hadoop. Vous devez garder à l'esprit que les deux frameworks ont leurs avantages et qu'ils fonctionnent mieux ensemble.
53
Les clusters Apache Spark sont des groupes de machines qui sont traités comme une seule machine et
qui vont gérer l’exécution des commandes émises à partir des notebooks.
Azure Databricks vous permet d’utiliser Apache Spark dans un environnement complètement managé et
affiné.
La compréhension de l’architecture des clusters et des travaux Spark est un excellent point de départ
pour apprendre à effectuer des tâches d’engineering et de science des données dans Azure Databricks.
56
Ingestion. Le bloc-notes d'ingestion de données télécharge les fichiers de données d'entrée dans une collection
d'ensembles de données Databricks. Dans un scénario réel, les données des appareils IoT seraient diffusées sur
un stockage accessible par Databricks, tel qu'Azure SQL Server ou Azure Blob Storage.
Training pipeline. Ce bloc-notes exécute le bloc-notes d'ingénierie des fonctionnalités pour créer un ensemble
de données d'analyse à partir des données ingérées.
Scoring pipeline. Ce bloc-notes exécute le bloc-notes d'ingénierie de fonctionnalités pour créer un ensemble
de données de notation à partir des données ingérées et exécute le bloc-notes de notation. Le bloc-notes de
notation utilise le modèle Spark MLlib formé pour générer des prédictions pour les observations dans
l'ensemble de données de notation.
Scheduler. Une tâche Databricks planifiée gère la notation par lots avec le modèle Spark. Le travail exécute le
bloc-notes du pipeline de notation, en transmettant des arguments variables via les paramètres du bloc-notes
pour spécifier les détails de construction de l'ensemble de données de notation et où stocker l'ensemble de
données de résultats.
58
1. Ingestion des données depuis la source de données externe dans un magasin de données Azure
Databricks.
3. Appliquez le modèle formé pour prédire (classer) les défaillances des composants en transformant les
données en un ensemble de données de notation. Évaluez les données avec le modèle Spark MLLib.
➢ Deux types de patrons de messaging existent: Les systèmes "point à point" et les systèmes "publish-subscribe".
61
➢ Métrique (KPI)
Kafka est souvent utilisé pour les données de surveillance opérationnelle. Cela implique l'agrégation de statistiques à
partir d'applications distribuées pour produire des flux centralisés de données opérationnelles.
69
➢ Uses cases :
Déploiement automatique
86
Conclusion
Deux catégories
Outils de gestion de
Frameworks Big Data
« grands volumes » de logs
Bibliographie
https://openclassrooms.com/fr/courses/4462426-maitrisez-les-bases-de-donnees-
nosql/4462433-choisissez-votre-famille-nosql
https://aws.amazon.com/fr/nosql/key-
value/#:~:text=Une%20base%20de%20donn%C3%A9es%20cl%C3%A9%2Dvaleur%20es
t%20un%20type%20de,cl%C3%A9%20sert%20d'identifiant%20unique.
https://data-flair.training/blogs/hbase-architecture/
https://ledatascientist.com/hadoop-pour-les-nuls-presentation-de-lecosysteme/
https://databricks.com/fr/spark/about
https://spark.apache.org/docs/3.1.2/
https://spark.apache.org/docs/3.1.2/spark-standalone.html#installing-spark-
standalone-to-a-cluster
https://spark.apache.org/docs/3.1.2/running-on-kubernetes.html
https://databricks.com/fr/spark/getting-started-with-apache-spark/machine-learning
https://kafka.apache.org/
99
Questions ?
Contactez-nous:
tinembaye@gmail.com
@tinepapa (twitter)