hadoop et son écosystème
TRANSCRIPT
Hadoop et son écosystème
par Khanh Tuong MAUDOUX@jetoile
101/05/2023
Hadoop et son écosystème
Au programme…• Hadoop : qu’est ce que c’est?
– MapReduce– HDFS– Yarn
• Ecosystème– Data Integration– Batch Processing– Analytic SQL– Streaming Processing– Machine Learning– Search Engine– Autre
201/05/2023
Hadoop et son écosystème
Qui je suis…• Khanh Tuong Maudoux
• Développeur Java, JavaEE, BigData indépendant
• blog : blog.jetoile.fr• @jetoile• [email protected]
301/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…
401/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…• BigData => V4
– Volume– Vélocité– Variété– Véracité
• BigData=> Hadoop?
01/05/2023 5
Ne parlera pas des API de programmations comme Cascalog/Hive/Pig/Java/…
Hadoop et son écosystème
Qu’est ce que c’est…
01/05/2023 6
HDP 2.3
Hadoop et son écosystème
Qu’est ce que c’est…MapReduce
701/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…MapReduce
801/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…MapReduce
9
• Et… Shuffle
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…MapReduce
10
• Et… Shuffle
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS
1101/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS
12
• Hadoop Distributed FileSystem
• FileSystem– Les données sont écrites dans des blocs gérés
par le FileSystem• HDFS
– Les données sont écrites dans des blocs gérés par le HDFS
=> Un fichier dans HDFS est constitué de blocs01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS
13
• Permet :– La réplication (les blocs sont répliqués) et donc
la résilience– La scalabilité (les blocs ne sont pas tous sur la
même machine)– …
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS
14
• Composé de :– Namespace : structure de répertoire et nom des fichiers– Metadata : propriétaire, permissions et attributs tels que le
timestamp– Journaling : permet d’assurer l’intégrité et la gestion des
erreurs– Storage : bloc disque, et stockage physique– Tools : clients et utilitaires pour interagir avec le système de
fichiers
01/05/2023
Operating System (OS)
Virtual File System
File System (ext4, ext3, xfs, …)
Namespace(s)
MetadataJournaling
Tools
DiskStorage
Hadoop et son écosystème
Qu’est ce que c’est…HDFS - Architecture
15
• NameNode et DataNode
01/05/2023
NameNode NamespaceMetadata
Block MapJournaling
Disk
DataNode
Storage
Disk
DataNode
Storage
Disk
Storage
Disk
Bloc report
Contient la localisation réelle des données (bloc/datanode)
DataNode
Hadoop et son écosystème
Qu’est ce que c’est…HDFS - NameNode
16
• Fonctionnement :– fsimage : point de controle (checkpoint) persistant contenant les
métadonnées du système de fichiers– edits : journal des opérations
• fsimage chargé en mémoire
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS - Lecture
1701/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS - Ecriture
1801/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…HDFS - HA
1901/05/2023
DN DN DN DN
Active NN Standby NN
Quorum Journal Manager /
Shared Storage
Block reports envoyés aux 2 NN
Toutes les modifications d’edits sont partagées
Hadoop et son écosystème
Qu’est ce que c’est…YARN
2001/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…YARN
21
• Avant :– JobTracker– TaskTracker
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…YARN
22
• Yet Another Ressource Negociator• Composé de :
– ResourceManager– NodeManager– ApplicationMaster
01/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…YARN et HDFS
2301/05/2023
Hadoop et son écosystème
Qu’est ce que c’est…YARN - Multisite
24
• Utilisation du Rack Awareness• Utilisation du StandByNameNode
• YARN peut décider d’utiliser la DataNode distant • Dans le cas de l’utilisation d’un StandByNameNode, tous les
DataNodes doivent communiquer avec lui• Risque si données incohérentes entre des DataNodes
localisés sur des sites différents• Partage d’informations entre les deux NameNodes• Gestion de Zookeeper• Gestion HBase
01/05/2023
Hadoop et son écosystème
Ecosystème
2501/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeData Integration
2601/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeData Integration
27
• Sqoop• Flume• Logstash• Kafka (messaging)
01/05/2023
Hadoop et son écosystème
EcosystèmeData Integration - Sqoop
28
• Outils permettant de transférer des données en masse entre Hadoop et un entrepôt de données structuré tel qu’une base de données
01/05/2023
Hadoop et son écosystème
EcosystèmeData Integration - Flume
29
• Flume est un service distribué, fiable et hautement disponible servant à la collecte, la l’agrégation et le déplacement d’une grosse quantité de données de logs
• Composé de – Source– Sink– Channel
01/05/2023
Hadoop et son écosystème
EcosystèmeData Integration - Logstash
3001/05/2023
• Logstash est un simple agent orienté message qu’il est possible de configurer pour combiner différentes fonctions
• Composé de – Input– Filter– Output
Hadoop et son écosystème
EcosystèmeData Integration - Kafka
31
• Système orienté message de type publish/subscribe implémenté comme système de traces transactionnel distribué, adapté pour la consommation de messages en-ligne et hors ligne
• Service de commit de traces distribué, partitionné et répliqué
• Les producteurs publient des messages dans des topics, les consommateurs s'abonnent à ces sujets et consomment les messages
01/05/2023
Hadoop et son écosystème
EcosystèmeBatch Processing
3201/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeBatch Processing
33
• Hive• Pig• Cascading• Spark
01/05/2023
Hadoop et son écosystème
EcosystèmeBatch Processing - Hive
34
• Permet l’exécution de requêtes SQL sur un cluster Hadoop en vue d’analyser et d’agréger les données.
• Langage de visualisation uniquement
• Offre les connecteurs ODBC/JDBC
01/05/2023
Hadoop et son écosystème
EcosystèmeBatch Processing - Pig
35
• Permet le requêtage des données Hadoop à partir d’un langage de script
• Basé sur un langage de haut niveau permettant de créer des programmes de type MapReduce
01/05/2023
Hadoop et son écosystème
EcosystèmeBatch Processing - Cascading
36
• API de traitement de données et planificateur de requête pour la définition, le partage et le traitement de données
01/05/2023
Hadoop et son écosystème
EcosystèmeBatch Processing - Spark
37
– Moteur d’analyse multifonction adapté au traitement rapide de gros volumes de données
– Concurrent de MapReduce– Basé sur les RDD (Resilient Distributed
DataSet)
– Peut s’appuyer sur YARN
01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL
3801/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeAnalytic SQL
39
• Drill• Impala• Spark SQL• Hawq• Presto
01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL - Drill
40
• Système distribué permettant d’effectuer des requêtes sur de larges données permettant l’analyse interactive des données en SQL
• Permet de requêter des sources de données hétérogènes : • MongoDB• JSON• HDFS• Hive• Classpath• HBase
• Offre le connecteur ODBC
01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL - Impala
41
• Système distribué permettant d’effectuer des requêtes sur de larges données permettant l’analyse interactive des données en SQL
• Permet de requêter des sources de données hétérogènes :
• HDFS• HBase
• Compatible avec Hive01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL – Spark SQL
42
• Module de Spark offrant une API de plus haut niveau avec une syntaxe SQL
• Equivalent à Hive mais s’exécutant sur Spark
• Offre le connecteur JDBC
01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL – Hawq
43
• Système distribué permettant d’effectuer des requêtes sur de larges données permettant l’analyse interactive des données en SQL
• Full compliant SQL
• Offre le connecteur ODBC/JDBC
01/05/2023
Hadoop et son écosystème
EcosystèmeAnalytic SQL – Presto
44
• Système distribué permettant d’effectuer des requêtes sur de larges données permettant l’analyse interactive des données en SQL
• Permet de requêter des sources de données hétérogènes :– Hive– HDFS– Cassandra
• Compatible avec Hive
• ANSI-SQL syntax support (presumably ANSI-92)
• Offre le connecteur JDBC
01/05/2023
Hadoop et son écosystème
EcosystèmeStream Processing
4501/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeStream Processing
46
• Storm• Spark Streaming• Spring XD• Samza
01/05/2023
Hadoop et son écosystème
EcosystèmeStream Processing - Storm
47
• Système de calcul distribué temps réel
• S’appuie sur les notions de :• Nimbus Node (~JobTracker)• Zookeeper• Supervisor Node (~NodeManager)
• Notions de Spouts/Bolts
• Peut s’appuyer sur YARN01/05/2023
Hadoop et son écosystème
EcosystèmeStream Processing – Spark Streaming
48
• Module de Spark permettant de traiter des flux de données qui arrivent en continu, et donc de traiter ces données au fur et à mesure de leur arrivée
• Fonctionnement sur le principe de microbatch
01/05/2023
Hadoop et son écosystème
EcosystèmeStream Processing – Spring XD
49
• Basé sur Spring Integration, Spring Batch et Spring Data
• Offre un DSL qui permet de construire une route qui est exécuté par des job managé par Spring Batch en exploitant le provisionning par YARN / MESOS / Local
01/05/2023
Hadoop et son écosystème
EcosystèmeStream Processing – Samza
5001/05/2023
• Framework permettant de traiter de manière distribué des flux
• Utilise Kafka, YARN
• Offre la possibilité de faire du windowing
Hadoop et son écosystème
EcosystèmeMachine Learning
5101/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeMachine Learning
52
• Mahout• Spark ML
01/05/2023
Hadoop et son écosystème
EcosystèmeMachine Learning - Mahout
53
• Vise à créer des implémentations d’algorithmes d’apprentissage automatiques et de dataminings.
• Même si les principaux algorithmes d’apprentissage se basent sur MapReduce, il n’y a pas d’obligation à utiliser Hadoop
01/05/2023
Hadoop et son écosystème
EcosystèmeMachine Learning – Spark ML
54
• Librairie Spark de machine learning fournissant les algorithmes de classique (classification, regression, clustering, collaborative filtering, dimensionality reduction, …)
01/05/2023
Hadoop et son écosystème
EcosystèmeMachine Learning
5501/05/2023
BatchProcessing
AnalyticSQL
SearchEngine
MachineLearning
StreamProcessing
Workload Management (Yarn)
Storage for any type of dataUnified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
Hadoop et son écosystème
EcosystèmeSearch Engine
56
• SolR• Elastic
01/05/2023
Hadoop et son écosystème
EcosystèmeSearch Engine – SolR
5701/05/2023
• SolR offre une indexation distribué, répliqué basé sur Apache Lucene
• Permet la recherche full text, le highlighting, le facetting, la recherche géospatiale
• Permet l’indexation de documents riches
Hadoop et son écosystème
EcosystèmeSearch Engine – Elastic
5801/05/2023
• Elastic offre une indexation distribué, répliqué basé sur Apache Lucene
• Permet la recherche full text, le highlighting, le facetting, la recherche géospatiale
• Permet l’indexation de documents riches
Hadoop et son écosystème
EcosystèmeAutre
5901/05/2023
Hadoop et son écosystème
EcosystèmeAutre
60
• HBase• Phoenix• Cassandra• Kudu• Hive• Confluent.io• Oozie• Ambari• Zookeeper• Tez• Mesos• Flink
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - HBase
61
• Système de gestion de base de données non-relationnelles distribué de type orientée colonnes
• Basés sur une architecture maitre/esclave (HBase Master et Region Server)
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - Phoenix
6201/05/2023
• Permet de requêter HBase via une interface SQL en offrant un driver jdbc.
• Phoenix accepte une requête SQL et la traduit en une série de scan Hbase. Il orchestre ensuite son exécution pour produire un résultat au format ResultSet JDBC.
• Les métadonnées de la table sont stockées et versionnées dans une table HBase.
Hadoop et son écosystème
EcosystèmeAutre - Cassandra
6301/05/2023
• Système de gestion de base de données non-relationnelles distribué de type orientée colonnes
• Conçu pour être hautement disponible, scalable linéairement, et sans Single Point Of Failure
Hadoop et son écosystème
EcosystèmeAutre - Kudu
6401/05/2023
• Système de gestion de base de données non-relationnelles distribué de type orientée colonnes
• Conçu pour offrir de bonnes performances aussi bien pour les scanne que pour les accès aléatoire
• Se positionne entre HDFS et HBase
Hadoop et son écosystème
EcosystèmeAutre - Hive
65
• Hive – HiveMetastore– HiveServer2– HCatalog
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre – Confluent.io
6601/05/2023
• Intégration de :– Kafka – Avro– SchemaRegistry– Gateway Rest pour lire/écrire dans Kafka
Hadoop et son écosystème
EcosystèmeAutre - Oozie
67
• Solution de workflow (au sens ordonnanceur d’exploitation) utilisée pour gérer et coordonner les tâches de traitement de données à destination de Hadoop.
• Integré avec l’écosystème Hadoop :– MapReduce (Java et Streaming)– Pig– Hive– Sqoop– Autres (Java ou scripts de type Shell)
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - Ambari
68
• Destiné à la supervision et à l’administration de clusters Hadoop
• Outil web qui propose un tableau de bord (visualisation de l’état d’un cluster – état des services, configuration, supervision, exécution des jobs, métriques)
• Gestion de configuration permettant de déployer des services d’Hadoop ou de son écosystème sur des clusters de machines
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - Zookeeper
69
• Service de coordination des services (et en l’occurrence des services d’un cluster Hadoop)
• Fournit aux composants Hadoop les fonctionnalités de distribution
• Indispensable à :– HBase– Storm– Kafka
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - Tez
70
• Remplace MapReduce en utilisant YARN afin de fournir des requêtes dites “temps réel”
• Utilisable par (work in progress) :– Hive– Pig– Cascading
01/05/2023
Hadoop et son écosystème
EcosystèmeAutre - Flink
7101/05/2023
• Alternative à Spark
• Moteur de streaming de flux distribué
• Peut se déployer sur YARN
Hadoop et son écosystème
EcosystèmeAutre - Mesos
7201/05/2023
• Alternative à YARN
• Cluster Manager permettant d’abstraire le CPU, la mémoire, le stockage ainsi que les resources de calcul
Hadoop et son écosystème
EcosystèmeAutre – MaprFS / MaprDB
7301/05/2023
• MapR propose MapR-FS en alternative à HDFS
• MapR propose MapR-DB en alternative à HBase
• Offre les mêmes API (HDFS/HBase)
Hadoop et son écosystème
Questions ?
7401/05/2023
Hadoop et son écosystème
Merci !
7501/05/2023