Dès qu'une organisation doit faire tourner plusieurs machines en parallèle, on passe naturellement à un réseau d'ordinateurs pour répartir la charge de travail. C'est aujourd'hui la norme : dans des domaines comme la science des données, pratiquement toutes les opérations reposent sur ces infrastructures distribuées. Efficace, certes, mais aussi complexe : il faut configurer chaque machine individuellement, puis gérer l'ensemble du réseau tout au long des traitements. C'est là qu'interviennent des outils comme Hadoop.
- Qu'est-ce que Apache Hadoop ?
- Cas d'usage de Hadoop
- Présentation de l'architecture Hadoop
- Installer Hadoop sur Ubuntu 20.04 - Guide étape par étape
- Prérequis
- Étape 1 : Créer un utilisateur non root pour Hadoop
- Étape 2 : Configurer les clés SSH
- Étape 3 : Télécharger et installer Hadoop sur Ubuntu
- Étape 4 : Configurer l'environnement Hadoop
- Étape 5 : Modifier les fichiers de configuration
- Étape 6 : Formater HDFS
- Étape 7 : Démarrer les services Hadoop
- Étape 8 : Vérifier l'installation
- Étape 9 : Accéder aux interfaces web
- Étape 10 : Exécuter un exemple MapReduce
- Étape 11 : Définir les variables d'environnement
- Conclusion
- Questions fréquemment posées
Hadoop est une suite d'outils et de programmes publiée par Apache qui permet de mettre en réseau plusieurs ordinateurs avec beaucoup plus d'efficacité et de simplicité. Dans cet article, je présente Hadoop, ses cas d'usage, ses avantages et inconvénients, ainsi qu'une vue d'ensemble de son architecture avancée. Je terminerai par un guide pas à pas pour installer Hadoop sur Ubuntu 20.04, dans le cadre de ce tutoriel Hadoop 2024.
Qu'est-ce que Apache Hadoop ?
Hadoop, une suite d'outils développée par Apache, transforme la configuration et l'utilisation des réseaux depuis plus de 15 ans. Elle permet de tirer parti de la puissance de calcul existante pour des tâches exigeantes, sans avoir à investir dans du matériel coûteux. La suite comprend quatre modules : HDFS, YARN, MapReduce et Hadoop Common, chacun conçu pour des cas d'usage spécifiques.
L'atout principal de Hadoop réside dans sa capacité à unir la puissance de calcul de plusieurs machines existantes en une seule force coordonnée, capable de traiter des défis computationnels importants. Sans Hadoop, les organisations et les particuliers devraient investir dans des machines toujours plus puissantes, ce qui représente un coût considérable.
Cas d'usage de Hadoop
Maintenant que nous savons ce qu'est Hadoop, voyons comment ses cas d'usage s'appliquent concrètement. Comprendre un programme en théorie est utile, mais cela ne remplace pas la mise en pratique dans un contexte réel. Voici quelques exemples avant de passer au tutoriel Hadoop.
Analyse des risques
Comme mentionné précédemment, Hadoop vous permet de combiner la puissance de plusieurs systèmes informatiques au sein d'un même réseau pour traiter et analyser rapidement de grands volumes de données. Toute activité comporte des risques qui nécessitent analyse et calcul. Hadoop est particulièrement utile dans ce contexte : de nombreux hôpitaux reconnus l'utilisent pour évaluer les risques liés à différents traitements et anticiper les résultats potentiels pour leurs patients. Vous pouvez en apprendre davantage sur le rôle de Hadoop dans le domaine de la santé ici.
Détection des failles de sécurité
À mesure qu'un réseau ou une organisation intègre davantage d'appareils et de connexions, les failles de sécurité potentielles se multiplient. L'une des utilisations clés de Hadoop est d'analyser l'ensemble d'une infrastructure en traitant de grands volumes de données pour identifier les points vulnérables du système.
Correspondance des avis
De nombreuses entreprises s'appuient sur les avis de leurs clients pour améliorer leurs produits ou définir de nouvelles stratégies commerciales. Là où un humain mettrait un temps considérable à dépouiller un grand fichier d'avis, Hadoop exploite la puissance de son réseau d'ordinateurs pour produire des résultats bien plus rapidement.
Analyse de marché
En parlant de stratégies commerciales, l'analyse des avis clients ne représente qu'une fraction des ressources nécessaires pour étudier un marché et évaluer le potentiel d'un nouveau produit. C'est un autre domaine où Hadoop se distingue : même les petites entreprises en croissance peuvent analyser efficacement un marché en répartissant le travail sur plusieurs ordinateurs, dans des délais raisonnables.
Analyse des fichiers journaux
Un autre aspect qui se complexifie à mesure qu'une entreprise grandit est la quantité de logiciels utilisés en interne. Multiplier les logiciels entraîne davantage de bugs et de points de friction, et nécessite un suivi dédié des fichiers journaux. Cela demande beaucoup de temps, mais grâce à quelques protocoles simples, une entreprise peut utiliser Hadoop pour analyser rapidement ces fichiers, détecter les bugs et les corriger.
Il existe de nombreux autres cas d'usage et applications de Hadoop, mais pour rester concentrés sur l'objet de cet article, nous n'irons pas plus loin dans cette liste.
Présentation de l'architecture Hadoop
Vous connaissez peut-être déjà Hadoop, ses cas d'usage généraux et ce qu'il fait. Sinon, cet article vous a normalement mis à niveau jusqu'ici. Il est maintenant temps d'aller plus loin et de comprendre ce que Hadoop contient réellement et comment ses composants interagissent. Comme mentionné précédemment, Hadoop comporte quatre couches principales. Dans cette partie du tutoriel, nous allons explorer HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce et Hadoop Common. Hadoop Common étant relativement simple à comprendre, ses éléments essentiels sont connus sous le nom de Zookeeper. Dans cette section, je vais donc présenter l'architecture avancée de Hadoop et son écosystème en quatre parties, en termes accessibles, avant de passer à l'installation de Hadoop sur Ubuntu 20.04.
HDFS
Dans l'écosystème Hadoop, HDFS constitue le système de stockage global utilisé par tous les sous-systèmes et applications Hadoop pour accéder aux données, les transférer et les enregistrer. Le point clé de l'architecture HDFS est que, contrairement à Hadoop lui-même qui est un programme open source, HDFS est le système de fichiers responsable de toutes les opérations sous-jacentes d'un cluster Hadoop. C'est un système de fichiers particulièrement fiable : il divise les données en blocs de 128 Mo et les optimise pour des opérations séquentielles.
Le rôle principal de HDFS dans le logiciel Hadoop est de fournir l'ensemble des données sous forme d'un rack de données global, qui peut ensuite être structuré via différents namenodes et racks secondaires en sous-sections pour organiser votre analyse. Vous pouvez également utiliser d'autres options comme les racks Journal, QJM, HA, les fichiers fsimage et edit log, ainsi que le journal général pour suivre et gérer vos opérations.
YARN
YARN est un autre composant exécutif de Hadoop, utilisé pour allouer des ressources de calcul à des applications spécifiques au sein de l'écosystème Hadoop. Concrètement, il vous permet de gérer via un gestionnaire de ressources l'allocation de ces ressources à différentes tâches et applications, à travers un ensemble de nœuds. YARN dispose également d'un journal, similaire à celui de HDFS, qui vous permet de suivre l'ensemble de vos ressources allouées et de vos opérations. YARN se divise en trois sous-composants : le Resource Manager, l'Application Master et le Node Manager.
Chacun de ces trois sous-composants crée une nouvelle instance par cluster, par application et par nœud, respectivement. YARN ne permet pas seulement d'allouer des ressources à différentes tâches : vous pouvez aussi planifier l'évolution de ces ressources dans le temps pour construire des workflows algorithmiques avancés. YARN ne se limite pas à ses propres sous-composants. Dans de nombreux cas, vous l'utiliserez conjointement avec d'autres couches architecturales comme HDFS et Zookeeper pour allouer des ressources et évaluer l'ensemble de votre infrastructure.
Hadoop MapReduce
Hadoop MapReduce est un autre composant majeur de l'écosystème Hadoop. Une fois Hadoop installé sur Ubuntu, vous pouvez utiliser cette fonctionnalité pour analyser de grands volumes de données de façon distribuée sur plusieurs ordinateurs. Le principe de Hadoop MapReduce est le suivant : vous injectez un grand ensemble de données dans le programme. Cet ensemble est alors mélangé, découpé et distribué entre vos machines en réseau. Ensuite, via des protocoles appelés reducers, les données sont réduites à leurs composants essentiels. Chacune de ces opérations est appelée un Job.
Imaginons une phrase de trois mots servant d'ensemble de données à analyser avec MapReduce. Prenons la phrase : Bear Hunt Rabbit. Hadoop MapReduce va découper et réduire cette phrase en trois lots distincts, chacun contenant un mot, puis combiner ces mots avec des données similaires provenant d'autres jobs pour produire un lot de données final, homogène, débarrassé des informations superflues et facile à analyser.
Zookeeper
Zookeeper est un autre sous-composant de l'écosystème Hadoop, qui a gagné en importance et en usage courant avec la sortie de Hadoop version 2.0. Son rôle principal est de coordonner les différentes opérations exécutées au sein d'une même instance Hadoop. À ce titre, Zookeeper est presque toujours utilisé conjointement avec le Resource Manager de YARN et les différentes fonctionnalités de HDFS dans Hadoop. Sa fonction principale dans ces opérations est de détecter et de corriger les points de défaillance potentiels. Pour cela, il utilise deux outils : ZKFailoverController et le Zookeeper Quorum.
Dans ces procédures, les nœuds de données gérés par les autres composants de l'architecture Hadoop sont classés comme namenodes actifs, supervisés par l'utilisateur. Chacun de ces namenodes est ensuite examiné au sein des deux sous-composants de Zookeeper mentionnés précédemment, afin d'identifier les zones problématiques et les défaillances potentielles.
Installer Hadoop sur Ubuntu 20.04 – Guide pas à pas
Maintenant que vous connaissez l'architecture de Hadoop, il est temps de passer au cœur du sujet : l'installation de Hadoop sur Ubuntu 20.04, dernière étape de ce tutoriel. Commençons par les prérequis avant d'aborder le guide d'installation pas à pas. Notez que ce guide est également valable pour Ubuntu 18.04.
Prérequis
Les prérequis pour installer Hadoop sur Ubuntu sont simples. Il vous faut un ordinateur équipé de Ubuntu avec un accès root, en local ou à distance via un serveur VPS. Côté logiciels, assurez-vous d'avoir déjà installé Java 11 et SSH. Si ce n'est pas le cas, exécutez les commandes suivantes une par une :
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y
Aucune licence n'est nécessaire : Hadoop est gratuit et open-source. C'est tout ce qu'il vous faut. Passons à la première étape.
Étape 1 : Créer un utilisateur non root pour Hadoop
Créez un utilisateur non-root dédié à Hadoop avec la commande suivante. Cette étape fait partie des configurations préalables à effectuer avant de télécharger et d'installer Hadoop :
sudo adduser hdoop
su - hdoop
Étape 2 : Configurer les clés SSH
Pour installer Hadoop sur Ubuntu, nous allons utiliser l'utilisateur Hadoop que vous venez de créer et établir une connexion SSH avec celui-ci. Utilisez cette commande pour générer une paire de clés SSH et l'enregistrer :
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Une fois les clés générées, la ligne suivante vous permettra de les marquer comme authorized_keys et de les enregistrer dans votre répertoire SSH :
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Utilisez maintenant cette commande pour vérifier que votre connexion SSH dispose de toutes les permissions requises :
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Confirmez les modifications et vous pourrez vous connecter facilement à votre localhost à tout moment avec l'utilisateur créé :
ssh localhost
Étape 3 : Télécharger et installer Hadoop sur Ubuntu
Vous pouvez consulter le site officiel Apache Hadoop pour voir la liste des versions et leurs notes de mise à jour. Choisissez la version qui vous convient : vous obtiendrez un lien à utiliser avec la commande suivante pour télécharger et installer Hadoop sur Ubuntu. Ici, je choisis la version 3.3.6. Remplacez « 3.3.6 » par la dernière version stable si nécessaire :
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
Une fois le téléchargement terminé, utilisez cette commande pour finaliser l'extraction et l'installation :
tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop
Étape 4 : Configurer l'environnement Hadoop
Définir JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:
echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Étape 5 : Modifier les fichiers de configuration
Mettez à jour les fichiers de configuration XML de Hadoop avec les paramètres de votre cluster.
nano /usr/local/hadoop/etc/hadoop/core-site.xml
Étape 6 : Formater HDFS
Initialisez le namespace du système de fichiers Hadoop.
/usr/local/hadoop/bin/hdfs namenode -format
Étape 7 : Démarrer les services Hadoop
Démarrez les services HDFS et YARN.
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
Étape 8 : Vérifier l'installation
Vérifiez les processus Java en cours d'exécution pour confirmer que Hadoop fonctionne.
jps
Étape 9 : Accéder aux interfaces web
Ouvrez les interfaces NameNode et ResourceManager de Hadoop dans votre navigateur.
NameNode : http://localhost:9870
ResourceManager : http://localhost:8088
Étape 10 : Exécuter un exemple MapReduce
Exécutez un exemple de job MapReduce pour valider la configuration.
/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*
Étape 11 : Définir les variables d'environnement
Ajoutez le répertoire bin et sbin répertoires au PATH système.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
Et voilà ! Vous venez de configurer et d'installer Apache Hadoop sur Ubuntu 20.04 avec succès !
Conclusion
En résumé, l'installation de Hadoop sur Ubuntu 20.04 est un processus rigoureux qui demande une attention minutieuse et une volonté d'explorer les subtilités de la configuration. En suivant les étapes de ce guide, les utilisateurs de Ubuntu peuvent exploiter pleinement les capacités de Hadoop pour leurs projets d'analyse de données.
Je recommande de déployer Hadoop en nœud unique avec une distribution limitée si vous souhaitez simplement l'apprendre et l'expérimenter. Pour cela, un VPS fera parfaitement l'affaire. Cloudzy vous propose un large choix de Services Linux VPS dont un Ubuntu VPS fiable et éprouvé, configurable en quelques minutes pour devenir votre environnement d'apprentissage Hadoop idéal. À partir de 4,95 $/mois, obtenez votre propre Ubuntu VPS avec plus de 12 emplacements et un support disponible 24h/24, 7j/7 !
Le choix qui s'impose
La majorité des serveurs Linux tournent sous Ubuntu. Pourquoi pas vous ? Découvrez pourquoi Ubuntu fait l'unanimité et obtenez un VPS Ubuntu optimisé.
Obtenir votre VPS UbuntuQuestions fréquemment posées
Quelles sont les différences entre HDFS et MapReduce ?
Bien que ces deux modules fassent partie de l'écosystème Hadoop, ils ont des rôles distincts. HDFS est un système de fichiers distribué qui assure l'accessibilité des données. MapReduce, quant à lui, excelle dans le découpage et l'analyse efficace de grands volumes de données.
Hadoop est-il considéré comme une base de données ?
Hadoop n'est pas une base de données, même si cette confusion est fréquente. Il s'agit en réalité d'un système de fichiers distribué permettant le stockage et le traitement de données volumineuses via un réseau d'ordinateurs interconnectés. Il ne doit pas être utilisé comme substitut direct à un système de base de données traditionnel.
Quels sont les quatre composants principaux de Hadoop ?
Hadoop repose sur quatre composants principaux : HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce et Hadoop Common. Certaines sources considèrent également ZooKeeper comme un composant, bien qu'il ne soit pas officiellement reconnu comme tel.
Dans quels domaines Hadoop est-il généralement utilisé ?
Hadoop est utilisé dans de nombreux domaines où la gestion, le stockage, le traitement et l'analyse de données à grande échelle sont indispensables. Il répond aux besoins d'organisations variées, des entreprises de taille moyenne aux hôpitaux en passant par les startups en croissance, en leur apportant des solutions fondées sur les données.