Introduction à Apache Hadoop

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quel est le rôle principal de la librairie logicielle Hadoop ?

  • Assurer la sécurité des réseaux informatiques.
  • Fournir un framework pour le calcul distribué. (correct)
  • Optimiser la gestion de la mémoire des systèmes.
  • Gérer les interfaces graphiques des applications.

Quelle est la principale caractéristique de la conception de Hadoop en matière de serveurs ?

  • Fonctionner uniquement avec des serveurs haut de gamme.
  • Être limité à un petit nombre de serveurs centralisés.
  • Passer de serveurs uniques à des milliers de machines. (correct)
  • Ignorer les capacités de calcul et stockage locaux des serveurs.

Comment Hadoop assure-t-il la disponibilité des services dans un cluster ?

  • En exigeant un matériel infaillible pour chaque serveur.
  • En redémarrant manuellement les serveurs en cas de panne.
  • En détectant et en gérant les pannes au niveau de l'application. (correct)
  • En ignorant les pannes au niveau de l'application.

Parmi les suivants, quel module fait partie d'Apache Hadoop et prend en charge d'autres modules ?

<p>Hadoop common (B)</p> Signup and view all the answers

Quel module d'Apache Hadoop est spécifiquement conçu pour la planification des tâches et la gestion des ressources du cluster ?

<p>Hadoop YARN (A)</p> Signup and view all the answers

Quel module d'Apache Hadoop est un système de fichiers distribué à haut débit ?

<p>Hadoop HDFS (B)</p> Signup and view all the answers

Quel module d'Apache Hadoop est basé sur YARN et est utilisé pour le traitement parallèle de grandes quantités de données ?

<p>Hadoop MapReduce (C)</p> Signup and view all the answers

Parmi les entreprises suivantes, laquelle utilise Apache Hadoop pour la recherche et la production ?

<p>Amazon (D)</p> Signup and view all the answers

Quelle est la dernière version majeure d'Hadoop mentionnée ?

<p>3.3.6 (D)</p> Signup and view all the answers

Quelle version de Java est requise pour le déploiement de Hadoop ?

<p>Java 11 (C)</p> Signup and view all the answers

Dans quel contexte utilise-t-on le mode de déploiement « cluster node » de Hadoop ?

<p>Dans un environnement de production. (D)</p> Signup and view all the answers

Quel est le but de la configuration des fichiers core-site.xml et hdfs-site.xml en mode pseudo distribué ?

<p>Configurer les paramètres de base de Hadoop et HDFS. (D)</p> Signup and view all the answers

Dans le contexte de la configuration HDFS, quel fichier est utilisé pour configurer l'emplacement où le NameNode stocke l'historique des transactions ?

<p>hdfs-site.xml (B)</p> Signup and view all the answers

En mode cluster, quelle est la spécification importante concernant le fichier slaves ?

<p>La première ligne doit correspondre au master et toutes les machines doivent être accessibles par <code>ssh</code>. (B)</p> Signup and view all the answers

Quelle commande est utilisée pour formater le système de fichiers HDFS avant de démarrer un cluster Hadoop ?

<p>$HADOOP_PREFIX/bin/hdfs namenode -format (A)</p> Signup and view all the answers

Après avoir lancé un job Hadoop, quelle commande peut être utilisée pour vérifier son exécution ?

<p>hadoop job -list (A)</p> Signup and view all the answers

Quelle commande HDFS permet de créer un nouveau répertoire ?

<p>hdfs dfs -mkdir (B)</p> Signup and view all the answers

Quel est le but principal de la commande hdfs fsck avec les options -files -blocks -locations ?

<p>Lister les fichiers, leurs blocs, et les nœuds où ils sont placés. (B)</p> Signup and view all the answers

Quel est l'objectif principal du HDFS (Hadoop Distributed File System) ?

<p>Offrir un système de fichiers distribué s'exécutant sur du matériel standard. (B)</p> Signup and view all the answers

Comment HDFS gère-t-il les pannes matérielles ?

<p>En les considérant comme une norme et en intégrant des mécanismes de tolérance aux pannes. (B)</p> Signup and view all the answers

Quel type d'accès aux fichiers est privilégié dans HDFS ?

<p>La diffusion en continu de fichiers à haut débit. (B)</p> Signup and view all the answers

Comment Hadoop est-il conçu pour gérer différents types de fichiers ?

<p>Il est conçu pour gérer de gros fichiers. (B)</p> Signup and view all the answers

Quel rôle joue le NameNode dans l'architecture HDFS ?

<p>Stocker les métadonnées des fichiers. (C)</p> Signup and view all the answers

Où le NameNode maintient-il les métadonnées pour un accès rapide ?

<p>En RAM. (B)</p> Signup and view all the answers

Quel rôle jouent les DataNodes dans HDFS ?

<p>Ils stockent le contenu des fichiers sous forme de blocs. (D)</p> Signup and view all the answers

Comment HDFS assure-t-il la redondance des données ?

<p>En répliquant chaque bloc sur plusieurs DataNodes. (C)</p> Signup and view all the answers

Que se passe-t-il si un DataNode devient indisponible dans un cluster HDFS ?

<p>Le NameNode détecte la perte et réplique les blocs perdus sur d'autres nœuds. (C)</p> Signup and view all the answers

Quelle est la conséquence de la perte d'un NameNode dans HDFS ?

<p>La perte du NameNode équivaut à la perte de tous les fichiers du système. (B)</p> Signup and view all the answers

Quelle est une des options proposées par Hadoop pour la sauvegarde et la récupération du NameNode ?

<p>Exécuter un NameNode secondaire. (D)</p> Signup and view all the answers

Quelle est la configuration par défaut pour le placement des blocs dans HDFS en termes de réplication ?

<p>Une réplique est placée localement, une deuxième dans un rack distant, et une troisième dans un autre rack distant. (D)</p> Signup and view all the answers

Comment un client HDFS interagit-il pour lire les données une fois que le placement des blocs est déterminé ?

<p>Il lit toujours à partir du nœud le plus proche. (C)</p> Signup and view all the answers

Quel est l'objectif du 'Balancing' (équilibrage) dans un cluster Hadoop ?

<p>Distribuer équitablement les blocs sur les DataNodes. (A)</p> Signup and view all the answers

Quelles sont les méthodes d'interaction utilisateur avec HDFS ?

<p>Par programmation via l'API JAVA, via ligne de commandes, et via une application web. (C)</p> Signup and view all the answers

Quelle commande HDFS est utilisée pour afficher l'espace utilisé en bits par les fichiers d'un répertoire donné ?

<p>du (D)</p> Signup and view all the answers

Que permet de faire la commande hadoop distcp ?

<p>Copier une quantité importante de données vers et à partir de systèmes de fichiers Hadoop en parallèle. (B)</p> Signup and view all the answers

Quelle est la définition principale de MapReduce ?

<p>Un modèle de programmation pour traiter le Big Data en parallèle. (C)</p> Signup and view all the answers

Quelle est la principale différence entre MapReduce et les SGBDR traditionnels en termes d'accès aux données ?

<p>MapReduce utilise un accès batch tandis que les SGBDR utilisent un accès interactif. (D)</p> Signup and view all the answers

Quelle est une caractéristique clé de MapReduce concernant la structure des données qu'il traite ?

<p>Il est adapté pour les données non structurées et semi-structurées. (A)</p> Signup and view all the answers

Dans le contexte de MapReduce, quelle est la fonction de la tâche 'Map' ?

<p>Convertir un ensemble de données en un autre ensemble de données sous forme de tuples. (C)</p> Signup and view all the answers

Quel est le rôle de la tâche 'Reduce' dans le processus MapReduce ?

<p>Prendre la sortie de Map comme entrée et combiner les tuples de données en un ensemble plus petit. (A)</p> Signup and view all the answers

Dans un job MapReduce, quelle est la relation entre les tâches Map et Reduce ?

<p>La tâche de réduction est effectuée après le travail des mappers. (B)</p> Signup and view all the answers

Flashcards

Qu'est-ce qu'Apache Hadoop ?

Un framework de calcul distribué pour traiter de grandes quantités de données sur des clusters d'ordinateurs.

Hadoop Common :

Les utilitaires de base qui prennent en charge les autres modules Hadoop.

Hadoop HDFS :

Un système de fichiers distribué qui fournit un accès à haut débit aux données d'application.

Hadoop YARN :

Un framework pour la planification des tâches et la gestion des ressources de cluster.

Signup and view all the flashcards

Hadoop MapReduce :

Un système basé sur YARN pour le traitement parallèle de données massives.

Signup and view all the flashcards

Qu'est-ce que HDFS ?

Un système de fichiers distribué conçu pour s'exécuter sur du matériel standard.

Signup and view all the flashcards

Comment HDFS considère-t-il les pannes matérielles ?

Les pannes matérielles sont considérées comme la norme, pas l'exception.

Signup and view all the flashcards

Quelle taille de fichier HDFS est-il conçu pour gérer?

Hadoop est conçu pour gérer de gros fichiers plutôt qu'un grand nombre de petits fichiers.

Signup and view all the flashcards

Quel est le rôle des NameNode et DataNodes dans HDFS ?

Le NameNode stocke les métadonnées, tandis que les DataNodes stockent les données réelles.

Signup and view all the flashcards

Comment HDFS gère-t-il les pannes de DataNode ?

Le NameNode détermine quels blocs étaient sur le nœud perdu et réplique ces blocs à partir d'autres nœuds.

Signup and view all the flashcards

Quelle est l'importance du NameNode ?

Perdre un NameNode équivaut à perdre tous les fichiers du système de fichiers.

Signup and view all the flashcards

À partir de quel nœud le client dans HDFS lit-il les données?

Le client lit à partir du nœud le plus proche.

Signup and view all the flashcards

Comment Hadoop fonctionne-t-il le mieux?

Hadoop fonctionne mieux lorsque les blocs sont équitablement distribués sur les DataNodes.

Signup and view all the flashcards

Comment copier des données vers Hadoop en parallèle?

Hadoop vient avec un programme appelé distcp pour copier des données vers le système de fichiers Hadoop en parallèle

Signup and view all the flashcards

Qu'est-ce que MapReduce ?

Un modèle de programmation pour écrire des applications capables de traiter le Big Data en parallèle.

Signup and view all the flashcards

À quoi MapReduce est-il adapté?

MapReduce est adapté à l'analyse de données en batch.

Signup and view all the flashcards

Quelles sont les deux tâches principales dans MapReduce ?

La tâche Map convertit les données en tuples, et la tâche Reduce combine ces tuples.

Signup and view all the flashcards

Study Notes

  • Ce document présente Apache Hadoop, couvrant ses modules, son développement, son déploiement, HDFS et MapReduce.

Projet Apache Hadoop

  • Le projet Apache Hadoop développe des logiciels open source conçus pour un calcul fiable, distribué et scalable.

Apache Hadoop

  • La librairie Hadoop est un framework de calcul distribué conçu pour fonctionner sur des clusters de machines.
  • Hadoop peut passer d'un seul serveur à des milliers de machines.
  • Chaque machine offre des capacités de calcul et de stockage locales.
  • Il est conçu pour détecter et gérer les pannes au niveau de la couche application.
  • Ceci fournit un service hautement disponible sur un cluster d'ordinateurs, chacun pouvant être sujet à des pannes.

Modules d'Apache Hadoop

  • Hadoop Common fournit les utilitaires de base utilisés par les autres modules.
  • Hadoop HDFS est un système de fichiers distribué qui offre un accès à haut débit aux données des applications.
  • Hadoop YARN est un framework pour la planification et la gestion des ressources de cluster.
  • Hadoop MapReduce est un système basé sur YARN conçu pour le traitement parallèle de grandes quantités de données.

Qui utilise Hadoop ?

  • Hadoop est utilisé par diverses entreprises et organisations pour la recherche et la production.
  • Des exemples d'entreprises utilisant Hadoop incluent Amazon, Adobe, Blablacar, Alibaba, Ebay et Facebook.

Développement de Hadoop

  • Quatre versions majeures de Hadoop sont sorties jusqu'à aujourd'hui.
  • La dernière version est Hadoop 3.3.6.

Déploiement de Hadoop

  • Java 11 est requis pour le déploiement.
  • L'utilisation de ssh est une exigence pour le déploiement sur Linux.
  • Il existe deux modes de déploiement, à savoir 'single node', pour lequel avoir la main est important et 'cluster node' qui est important dans un environnement de production.
  • Hadoop a été testé sur un cluster GNU/Linux de 2000 noeuds.

Étapes pour le déploiement de Hadoop

  • Créer un utilisateur Hadoop.
  • Importer la clé de signature.
  • Télécharger et décompresser la distribution Hadoop.
  • Initialiser les variables d'environnement JAVA_HOME et HADOOP_HOME.

Mode « pseudo-distributed »

  • Chaque démon Hadoop s'exécute dans un processus Java distinct.
  • Création d'espaces de stockage logiques dans les répertoires /opt/hadoop/hdfs/namenode et /opt/hadoop/hdfs/datanode.
  • Configuration via les fichiers core-site.xml et hdfs-site.xml.
  • Effectuer le formattage et démarrer le cluster HDFS.
  • Surveiller l'état du cluster via http://localhost:50070.

site-core.xml

  • core-site.xml sert à spécifier l'hôte et le port du système de fichiers HDFS.
  • Cette configuration se trouve généralement dans $HADOOP_HOME/etc/hadoop/.

hdfs-site.xml

  • hdfs-site.xml configure l'endroit où NameNode stocke l'historique des transactions.
  • hdfs-site.xml configure l'endroit où les DataNodes stockent leurs blocs.
  • Le coefficient de réplication est configuré dans hdfs-site.xml.
  • Le fichier se trouve dans un répertoire $HADOOP_HOME/etc/hadoop/.

Mode cluster (1)

  • La configuration est semblable au mode « nœud unique ».
  • Créer et configurer le répertoire pour le NameNode censé exécuter l'instance NameNode (le nœud maître).
  • Les machines du cluster sont spécifiées dans le fichierslaves dans $HADOOP_HOME/etc/hadoop/.
  • La première ligne du fichier slaves correspond au noeud master.
  • Toutes les machines doivent être accessibles via SSH.

Mode cluster (2)

  • Le fichier site-core.xml doit être modifié dans chaque machine, en mettant le nom DNS du master.
  • Le facteur de réplication dans hdfs-site.xml spécifie le nombre de DataNodes dans le cluster.
  • Le cluster doit être démarré sur le noeud master.

Démarrage d'un cluster Hadoop

  • Formater le système de fichiers avant de démarrer les nœuds, utiliser la commande : $HADOOP_PREFIX/bin/hdfs namenode -format.
  • Démarrer les daemons NameNode et DataNodes avec la commande : $HADOOP_HOME/bin/start-all.sh.
  • Vérifier ensuite que nous pouvons accéder au système de fichiers en exécutant une simple commande ls, ou regarder si les services sont démarrés avec jps.

Utilisation pratique d'un cluster

  • Télécharger les fichiers de configurations présents dans le répertoire etc/hadoop d'Hadoop.
  • Créer un dossier import pour pouvoir ajouter nos fichiers en utilisant hdfs dfs -mkdir import.
  • Uploader ensuite ces fichiers en utilisant hdfs dfs -put $HADOOP_PREFIX/etc/hadoop/*.xml import.
  • Pour vérifier bonne distribution des noeuds, lancer un job en utilisant hadoop jar $HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0. pi 2 5.
  • Suivre l'exécution du job avec hadoop job -list.
  • Observer comment les blocs sont répartis dans le cluster avec hdfs fsck /path/to/file -files -blocks -locations.
  • Cette commande va permettre de lister les fichiers, leurs blocks, et dans quels nœuds sont-ils placés.
  • L'exécution du cluster persistera si un nœud est fermé.

HDFS

  • Le Hadoop Distributed File System (HDFS) est un système de fichiers distribué qui fonctionne sur du matériel standard.
  • HDFS permet aux applications d'accéder de manière transparente aux fichiers et répertoires stockés sur différentes machines du réseau.

Principes fondamentaux de HDFS

  • Les défaillances matérielles sont considérées comme la norme plutôt que l'exception.
  • Un accès à faible latence aux parties aléatoires d’un fichier est moins souhaitable qu’une diffusion continue sur des fichiers à haut débit.
  • Hadoop est conçu pour gérer de gros fichiers plutôt qu'un grand nombre de petits fichiers.
  • Un fichier n’est jamais mis à jour après sa création.
  • Le principe de conservation des données simplifie le modèle de cohérence et permet un débit élevé.

Stockage des données dans HDFS

  • Le NameNode gère les métadonnées.
    • Le NameNode stocke les noms de fichiers, les emplacements des blocs, les attributs, etc.
    • Il conserve les métadonnées dans la mémoire RAM pour accélérer la recherche.
    • La taille des métadonnées est limitée à la quantité de RAM disponible sur le NameNode.
  • Les DataNodes gèrent le stockage réel.
    • DataNodes stocke l'ensemble des fichiers sous forme de blocs.
    • Des blocs différents d'un même fichier sont stockés sur des DataNodes différents.
    • Les blocs sont répliqués sur plusieurs DataNodes pour la redondance.
    • Chaque DataNode envoie un rapport de tous les blocs existants au NameNode en envoyant de manière periodique.

Gestion des pannes d'un slave

  • Les DataNodes échangent régulièrement des heartbeats avec le NameNode.
  • Si aucun heartbeat n'est pas reçu, le DataNode est considéré comme perdu.
  • Le NameNode détermine les blocs hébergés sur le nœud perdu.
  • Le NameNode trouve ensuite les copies de ces blocs et les réplique sur d'autres nœuds.
  • La réplication des blocs est maintenue activement.

Panne du NameNode

  • La perte d'un NameNode équivaut à la perte de tous les fichiers du système.
  • Hadoop propose deux options pour y remédier :
    • Utiliser des fichiers de sauvegarde constituant l'état persistant du système de fichiers (montage local ou NFS).
    • Exécuter un NameNode secondaire.

Placement des blocs (1)

  • Configuration par défaut :
    • Une réplica locale.
    • Une deuxième réplica sur un nœud dans le rack distant.
    • Une troisième réplica sur un nœud dans le rack distant.
    • Les réplicas supplémentaires sont configurées de façon aléatoire.
  • Le client lit depuis le nœud le plus proche.

Placement des blocs (2)

  • Le client récupère une liste de datanodes sur lesquels placer des réplicas de blocs.
  • Le client écrit le bloc dans le premier datanode.
  • Le premier datanode transfère les données au datanode suivant dans le pipeline.
  • Lorsque toutes les réplicas ont été écrits, le client procède à l'écriture du bloc suivant.
  • Plusieurs machines peuvent être impliquées dans l'écriture dans les fichiers.

Balancing Hadoop cluster

  • Hadoop fonctionne mieux lorsque les blocs sont distribués de manière égale.
  • L'accent est mis sur l'uniformisation du niveau de remplissage des disques sur les DataNodes.
  • Un démon de balancing Hadoop est utilisé.
  • Un script, % start-balancer.sh est lancé.
  • Les blocs redistribuent les blocs des DataNodes sur-utilisés vers ceux sous-utilisés
  • Cela s'effectue lorsque de nouveaux DataNodes sont ajoutés
  • Ceci peut être exécuté en tâche de fond pour la congestion du réseau/d'où l'impact négatif sur le cluster.

Interaction utilisateur avec HDFS

  • Les données peuvent être manipulées via :
    • Programmation via l'API JAVA.
    • Ligne de commandes.
    • Application web.

Opérations HDFS courantes :

  • Création de répertoires
  • Suppression de répertoires
  • Copie de/depuis HDFS
  • Affichage du contenu d’un répertoire
  • Affichage du contenu d’un fichier
  • Analyse de l’allocation disque
  • Vérification d'écritures ou de permissions
  • Activation de la réplication pour des répertoires donnés

Commandes en ligne

  • hadoop dfs –mkdir <path>Créer un répertoire dans un emplacement donné
  • hadoop dfs –rmr <src> Supprime tous les répertoires qui correspondent au système de fichiers spécifié
  • hadoop –put <localsrc> <dst> Copier les fichiers du système de fichier local vers fs
  • hadoop dfs -copyFromLocal <localsrc> <dst> identique à la commande put
  • hadoop dfs -moveFromLocal <localsrc> <dst> Même que put, sauf que la source est supprimée après copie
  • -ls <path> Lister le contenu d’un répertoire
  • lsr <path> Liste le contenu d’un répertoire de façon recursive
  • cat <src> Retrouve tous les fichiers qui correspondent aux critère de recherche et les affiche à la sortie
  • df <path>Affiche la capacité, espace vide, et espace utilisé du système de fichiers
  • du <<path>>Affiche l’espace utilisée en bits par les fichiers d’un répertoire donné
  • touchz <path>Crée un fichier vide dans le repertoire spécifié

Lecture interne d'un fichier dans HDFS

  • Le client est guidé par le Namenode pour le choix du meilleur DataNode pour chaque block
  • Le client contacte les DataNodes directement pour récupérer les données
  • Le NameNode donne uniquement l’emplacement des blocks
  • Conçu pour permettre à HDFS de passer à l’échelle en terme de nombre de clients

Copie parallèle avec disco

  • Hadoop vient avec un programme utile appellé distcp pour copier une quantité importante de données vers et à partir du système de fichiers de Hadoop en parallèle
  • hadoop distcp <url>
  • distcp est implémenté comme un job map reduce où la copie est effectuée par les maps qui s’exécutent en parallèle à travers le cluster

MapReduce

  • Modèle de programmation pour écrire des applications qui traitent le Big Data en parallèle sur plusieurs noeuds.
  • Fournit des capacités analytiques pour analyser d'énormes volumes de données complexes.

Hadoop MapReduce vs. SGBDR

  • MapReduce est adapté à l’analyse de données en batch.
  • Le SGBDR est destiné à la récupération en temps réel avec une faible latence et de petits ensembles de données.
  • Les processus MapReduce impliquent une étape Map et une étape Reduce.
  • La tâche Map prend un ensemble de données et le convertit en un autre ensemble de données, où les éléments individuels sont décomposés en tuples (paires clé-valeur).
  • La tâche Reduce prend la sortie de Map comme entrée et combine ces tuples de données (paires clé-valeur) en un ensemble plus petit de tuples.
  • La tâche de réduction est toujours effectuée après le travail des mappers

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser