INTRODUCTION AU BIG DATA
Tutrice : Dr Abir KHALDI 2021-2022
Chapitre 2 : Hadoop
Dr Abir KHALDI 1
Plan
Hadoop - Pourquoi Hadoo p - Caractéristi q ues Hadoop- Ecosystème Hadoop- Architecture Hadoop- Avantages & Inconvénients
Dr Abir KHALDI 2
- Doug Cutting a créé Hadoop en 2004 . Il s'agit d'un logiciel open source développé en tant que projet par Apache Software Foundation.
En 2008, Yahoo a donné Hadoop à Apache Software
Depuis lors, deux versions de Hadoop sont venues. Version 1.0 en 2011 et version 2.0.6 en 2013. Hadoop est disponible en différentes versions comme Cloudera, IBM BigInsight, MapR et Hortonworks.
Dr Abir KHALDI 3
Les principales lacunes de l'approche traditionnelle qui ont conduit à l'invention de Hadoop:
1. Stockage pour les grands ensembles de données Le SGBDR conventionnel est incapable de stocker d'énormes quantités de données. Le coût du stockage des données dans les SGBDR disponibles est très élevé. Comme cela entraîne le coût du matériel et des logiciels à la fois.
2. Gestion des données dans différents formats Le SGBDR est capable de stocker et de manipuler des données dans un format structuré. Mais dans le monde réel, nous devons traiter les données dans un format structuré, non structuré et semi-structuré.
3. Données générées à grande vitesse Les données suintent dans l'ordre de tera à peta octets par jour. Nous avons donc besoin d'un système pour traiter les données en temps réel en quelques secondes. Le SGBDR traditionnel ne parvient pas à fournir un traitement en temps réel à grande vitesse.
Dr Abir KHALDI 4
Hadoop = Solution aux problèmes de Big Data .
Hadoop permet de : Stocker des ensembles de données massifs sur un cluster de
machines de manière distribuée. Fournir des analyses Big Data via un cadre informatique distribué.
Advertisement
Dr Abir KHALDI 5
11 Bonnes raisons pour apprendre Hadoop :
2.1. Open Source Apache Hadoop est un projet open source. Cela signifie que son code peut être modifié en fonction des besoins de l'entreprise. 2.2. Traitement distribué Comme les données sont stockées de manière distribuée dans HDFS à travers le cluster, les données sont traitées en parallèle sur un cluster de nœuds. 2 3. . Tolérance aux pannes
2 3. . Tolérance aux pannes
C'est l'une des fonctionnalités très importantes de Hadoop. Par défaut, 3 répliques de chaque bloc sont stockées dans le cluster dans Hadoop et peuvent également être modifiées selon les exigences. Donc, si un nœud tombe en panne, les données sur ce nœud peuvent être récupérées facilement à partir d'autres nœuds à l'aide de cette caractéristique. Les pannes de nœuds ou de tâches sont récupérées automatiquement par le framework. C'est ainsi que Hadoop est tolérant aux pannes .
Dr Abir KHALDI 8
2.4. Fiabilité En raison de la réplication des données dans le cluster, les données sont stockées de manière fiable sur le cluster de la machine malgré les pannes de la machine. Si votre machine tombe en panne, vos données seront également stockées de manière fiable en raison de cette caractéristique de Hadoop. 2.5. La haute disponibilité : Les données à haute disponibilité sont hautement disponibles et accessibles
malgré une défaillance matérielle due à plusieurs copies de données. En cas de panne d'une machine ou de quelques matériels, les données seront accessibles à partir d'un autre chemin. 2.6. Évolutivité Hadoop est hautement évolutif dans la façon dont un nouveau matériel peut être facilement ajouté aux nœuds. Cette fonctionnalité de Hadoop offre également une évolutivité horizontale, ce qui signifie que de nouveaux nœuds peuvent être ajoutés à la volée sans aucun temps d'arrêt .
Dr Abir KHALDI 9
2.7. Économique Apache Hadoop n'est pas très cher car il fonctionne sur un cluster de matériel de base. Nous n'avons besoin d'aucune machine spécialisée pour cela. Hadoop permet également de réaliser d'importantes économies car il est très facile d'ajouter plus de nœuds à la volée ici. Donc, si les besoins augmentent, vous pouvez également augmenter les nœuds sans aucun temps d'arrêt et sans nécessiter beaucoup de pré-planification. 2.8. Facile à utiliser
Pas besoin de client pour gérer l'informatique distribuée, le framework s'occupe de tout. Cette fonctionnalité de Hadoop est donc facile à utiliser. 2.9. Localité de données Celui-ci est une des caractéristiques uniques de Hadoop qui le rendait facile à gérer les Big Data. Hadoop fonctionne sur le principe de la localité des données qui stipule que le calcul est déplacé vers les données plutôt que les données vers le calcul. Lorsqu'un client soumet l'algorithme MapReduce, cet algorithme est déplacé vers les données du cluster plutôt que d'amener les données à l'emplacement où l'algorithme est soumis, puis de les traiter. Ce sont les caractéristiques de Hadoop qui le différencient des autres Dr Abir KHALDI 10 systèmes de gestion des données.
Dr Abir KHALDI 11
Les trois composants de base de Hadoop
1. HDFS est le fondement de Hadoop et est donc une composante très importante de l'écosystème Hadoop. Il s'agit d'un logiciel Java qui offre de nombreuses fonctionnalités telles que l'évolutivité, la haute disponibilité, la tolérance aux pannes, la rentabilité, etc. Il fournit également un stockage de données distribué robuste pour Hadoop.
2. MapReduce est le composant de traitement des données de Hadoop. Il applique le calcul sur des ensembles de données en parallèle améliorant ainsi les performances.
3. YARN qui est l'abréviation de Yet Another Resource Manager. C'est comme le système d'exploitation de Hadoop car il surveille et gère les ressources. Yarn est entré en scène avec le lancement de Hadoop 2.x afin de permettre différentes charges de travail. Il gère les charges de travail comme le traitement de flux, le traitement interactif, le traitement par lots sur une seule plateforme.
Dr Abir KHALDI 12
4. Hive est un projet d'entrepôt de données construit sur le dessus d'Apache Hadoop qui fournit des requêtes et des analyses de données. Il a le langage de son propre appel HQL ou Hive Query Language . HQL traduit automatiquement les requêtes dans le travail de réduction de carte correspondant.
5. Pig est un langage de type SQL utilisé pour interroger et analyser les données stockées dans HDFS. Yahoo était le créateur ori g inal du Cochon. Il
utilise la langue latine du Pig. Il charge les données, lui applique un filtre et vide les données au format requis. Pig se compose également de JVM appelé Pig Runtime.
Advertisement
6. HBase est une base de données NoSQL construite sur le dessus de HDFS. Les différentes fonctionnalités de HBase sont qu'il s'agit d'une base de données open source, non relationnelle et distribuée. Il imite la Bigtable de Google et écrit en Java. Il fournit un accès en lecture / écriture en temps réel à de grands ensembles de données.
Dr Abir KHALDI 13
7. Mahout fournit une plate-forme pour créer des applications d'apprentissage automatique (Machine Learning) qui sont évolutives. Les algorithmes d'apprentissage machine nous permettent de créer des machines auto-évolutives sans être explicitement programmées. Il prend les décisions futures en fonction du comportement des utilisateurs, des expériences passées et des modèles de données.
8. Zookeeper coordonne les différents services de l ' écosystème Hadoop . Il
économise le temps requis pour la synchronisation, la maintenance de la configuration, le regroupement et la dénomination.
9. OOZIE Il s'agit d'un système de planification de workflow pour la gestion des travaux Hadoop. Il prend en charge les travaux Hadoop pour Map-Reduce, Pig, Hive et Sqoop. Oozie combine plusieurs emplois en une seule unité de travail. Il est évolutif et peut gérer des milliers de flux de travail dans un cluster Hadoop.
Dr Abir KHALDI 14
10. Sqoop importe des données de sources externes dans des composants compatibles de l'écosystème Hadoop tels que HDFS, Hive, HBase, etc. Il transfère également des données de Hadoop vers d'autres sources externes. Il fonctionne avec des SGBDR comme TeraData, Oracle, MySQL et ainsi de suite. La principale différence entre Sqoop et Flume est que Flume ne fonctionne pas avec des données structurées. Mais Sqoop peut gérer des données structurées et non structurées .
.
11. Flume : Il s'agit d'un service qui permet d'intégrer des données structurées et semi-structurées dans HDFS. Flume fonctionne sur le principe du traitement distribué. Il facilite la collecte, l'agrégation et le déplacement d'une énorme quantité d'ensembles de données. Flume a trois composants: source, puits et canal.
12. Ambari est un autre composant de l'écosystème Hadoop. Il est responsable de l'approvisionnement, de la gestion, de la surveillance et de la sécurisation du cluster Hadoop. Voici les différentes fonctionnalités d'Ambari : ~~Dr Abir KHALDI~~ 15
13. Apache Drill est un moteur de requête SQL sans schéma. Il fonctionne sur le dessus de Hadoop, NoSQL et du stockage cloud. Son objectif principal est le traitement à grande échelle de données à faible latence. Il s'agit d'un moteur de traitement de requêtes distribué. Nous pouvons interroger des pétaoctets de données à l'aide de Drill. Il peut évoluer sur plusieurs milliers de nœuds. Il prend en charge les bases de données NoSQL comme le stockage Azure BLOB, le stockage cloud Goo g le, Amazon S3, HBase, MongoDB, etc.
14. Apache Spark unifie toutes sortes de traitements Big Data sous un même parapluie. Il possède des bibliothèques intégrées pour le streaming, SQL, l'apprentissage automatique et le traitement de graphiques. Apache Spark s'éclaircit rapidement. Il donne de bonnes performances pour le traitement par lots et par flux. Il le fait à l'aide du planificateur DAG, de l'optimiseur de requêtes et du moteur d'exécution physique.
Dr Abir KHALDI 16
15. Apache Solr et Apache Lucene sont deux services qui recherchent et indexent l'écosystème Hadoop. Apache Solr est une application construite autour d'Apache Lucene. Le code d'Apache Lucene est en Java. Il utilise des bibliothèques Java pour la recherche et l'indexation. Apache Solr est une plate-forme de recherche open source extrêmement rapide.
Dr Abir KHALDI 17
Hadoop a une topologie maître-esclave: La fonction du nœud maître est d'assigner une tâche à différents nœuds esclaves et de gérer les ressources. Les nœuds esclaves effectuent le calcul proprement dit. Les nœuds esclaves stockent les données réelles alors que sur le maître, nous avons des métadonnées. Cela signifie qu'il stocke des données sur les données. L'architecture Hadoop comprend trois couches principales: HDFS ( s y stème de fichiers distribué Hadoo p)
MapReduce Yarn
Le socle technique d'Hadoop est composé :
1 . De toute l’architecture nécessaire pour l’orchestration de MapReduce pour :
Advertisement
- l’ordonnancement des traitements, la localisation des fichiers, la distribution de l’exécution.
2. D’un système de fichiers HDFS qui est : Distribué : les données sont réparties sur les machines du cluster. Répliqué : en cas de panne, aucune donnée n'est perdue. Optimisé pour la colocalisation
des données et des traitements.
Il prévoit le stockage des données de Hadoop. Il divise l'unité de données en unités plus petites appelées blocs et les stocke de manière distribuée. un système de fichiers HDFS est :
Distribué : les données sont réparties sur les machines du cluster.
Ré **p** li **q** ué : en cas de **p** anne **,** aucune donnée n'est **p** erdue.
Optimisé pour la colocalisation des données et des traitements. Il a deux démons en cours d'exécution: NameNode joue le role du nœud maître DataNode qui sont les nœuds esclaves -.
Dans Hadoop, l'architecture de stockage est une architecture maître- esclave:
Le nœud maitre appelé name node contient et stocke tous les noms et blocs des fichiers ainsi que leur localisation dans le cluster. On peut donc le voir comme un gros annuaire.
**Une** **autre** **machine**, **appelée** **secondary name node** **sert** **de** **namenode**
de secours en cas de défaillance du nœud maître et il a donc pour rôle de faire des sauvegardes régulières de l'annuaire.
Les autres nœuds, les esclaves, sont les nœuds de stockage en tant que tels. Ce sont les data nodes qui ont pour rôle la gestion des opérations de stockage locales (création, suppression et réplication de blocs) sur instruction du name node.
Dr Abir KHALDI 21
Si on souhaite écrire un fichier dans HDFS, on utilise un client Hadoop. Le principe est assez simple :
Le client indique au name node qu'il souhaite écrire un bloc.
Le name node indique le data node à contacter.
Le client envoie le bloc au data node.
Les data nodes répliquent les blocs entre eux. Le cycle se répète pour le bloc suivant.
Si on souhaire lire un fichier dans HDFS, c'est également assez simple.
Le client indique au name node qu'il souhaite lire un fichier.
Le name node indique sa taille ainsi que les différents data nodes contenant les blocs.
Advertisement
Le client récupère chacun des blocs sur l'un des data nodes. Si le data node est indisponible, le client en contacte un autre.
Gamme de sources de données
Les données recueillies auprès de diverses sources seront de forme structurée ou non structurée. Les sources peuvent être des médias sociaux, des données par clic ou même des conversations par courrier électronique. Il faudrait beaucoup de temps pour convertir toutes les données collectées en un seul format. Apache Hadoop économise ce temps, car il peut extraire des données précieuses de toute forme de données.
Rentable
Apache Hadoop est une solution rentable pour le stockage de données. Cela aide à long terme car il stocke la totalité des données brutes générées par une entreprise. Si l ’ entreprise change la
direction de ses processus à l’avenir, elle peut facilement se référer aux données brutes et prendre les mesures nécessaires.
Vitesse
Chaque organisation utilise une plate-forme pour faire un travail plus rapidement. Hadoop donne la possibilité à chaque entreprise de répondre à ses problèmes de stockage de données. Il utilise un système de stockage dans lequel les données sont stockées sur un système de fichiers distribué. Étant donné que les outils utilisés pour le traitement des données sont situés sur les mêmes serveurs que les données, on effectue également le traitement à un rythme plus rapide. Par conséquent, vous pouvez traiter des téraoctets de données en quelques minutes à l’aide de Apache Hadoop.
Tolérance aux pannes
Hadoop duplique automatiquement les données qui y sont stockées et crée plusieurs copies. Ceci est fait pour s’assurer qu’en cas de panne, les données ne soient pas perdues. Dr Abir KHALDI 25
Absence de mesures préventives
Pendant le traitement de données sensibles collectées par une entreprise, il est nécessaire de fournir les mesures de sécurité obligatoires. Dans Hadoop, les mesures de sécurité sont désactivées par défaut. Le responsable de l’analyse des données est conscient et prend les mesures nécessaires pour sécuriser les données.
Problèmes liés aux petites données
On trouve des plates-formes Big Data sur le marché qui ne conviennent pas aux petites données. Hadoop est l’une de ces plates-formes dans laquelle seules les grandes entreprises générant des données volumineuses peuvent profiter de ses avantages. En effet, Hadoop ne peut pas fonctionner efficacement dans de petits environnements de données.
Fonctionnement risqué
Java est l’un des langages de programmation les plus populaire au monde. C’est également lié à diverses controverses car les cybercriminels peuvent facilement exploiter les frameworks construits sur Java. Hadoop est un de ces frameworks entièrement basé en Java. Par conséquent, la plate-forme est très vulnérable et
Dr Abir KHALDI 26
peut subir des dommages.
• Questions ? [email protected]
Dr Abir KHALDI 27