fbpx

Hadoop : présentation du framework Big data par excellence

La maîtrise et l’exploitation de la Big data par l’entreprise nécessitent un panel d’outils de gestion et d’analyse de data aussi performants que pertinents. Il s’agit non seulement de valoriser son secteur d’activité en utilisant des données authentiques, mais aussi d’avoir des perspectives sans cesse actualisées du marché pour justifier des prises de décisions essentielles. Pour ce faire, une grande majorité des entreprises ne jure plus que par Hadoop

Destiné à voler au firmament de l’univers Big data dans les années à venir, Hadoop est parmi les progiciels de stockage et de traitement de données les plus populaires. Que faut-il savoir sur ce vaste programme, ses fonctionnalités, son intérêt ?

Qu’est-ce que Hadoop ?

Faisant partie du projet Apache, Hadoop est une plateforme logicielle de stockage et de traitement de données. Open source et libre, son système écrit en java est basé sur une architecture distribuée, une alternative à une architecture classique client-serveur. Au lieu de déplacer les données vers un réseau pour le traitement, ce programme fait usage de ce qu’on appelle « clusters » ou des grappes d’ordinateurs ainsi que des modèles de programmation simples. Son utilisation donne ainsi lieu à la disposition d’une puissance de traitement élevée et la prise en charge de tâches en quantité illimitée. Il permet en somme le traitement en parallèle de vastes jeux de données (mesurés en gigaoctet ou pétaoctet). Hadoop est utilisé par de nombreuses grandes entreprises pour ne citer que Facebook, Netflix, eBay, ainsi de suite.

Les enjeux à l’utilisation de Hadoop

Dans le domaine de la programmation informatique, les projets Apache (serveur web multiplateforme) tiennent une place particulière dans les usages des développeurs et des informaticiens. Hadoop est un outil pivot : il permet de faire face à une augmentation continue des données disponibles tant en volume qu’en diversité, engendrée par un développement important des réseaux sociaux et de l’internet des objets entre autres sources. La computation distribuée propre à Hadoop et ses autres caractéristiques sont aussi bien des atouts que des sources de quelques écueils majeurs.

Avantages de Hadoop

En dehors de son immense puissance de traitement qui donne lieu à un processus à haut débit, l’écosystème Hadoop est aussi caractérisé par une haute protection contre les dysfonctionnements hardware. Notamment, en cas de panne d’un nœud de données, les tâches sont instantanément orientées vers d’autres « datanodes », garantissant la continuité du calcul distribué dans le même rythme. Le système effectue aussi une copie et un stockage automatique des données.

Flexible, Hadoop dispose également d’un traitement avant stockage. Il prend en charge tout type d’ensembles de données structurées, semi-structurées ou non structurées (textes, images, vidéos), et ce, indépendamment de sa propre structure. Il est en même temps possible de stocker des données en vue d’une utilisation ultérieure. Autrement dit, Hadoop est évolutif : il est possible de l’adapter en augmentant ou en réduisant le nombre de nœuds, notamment selon l’évolution de la quantité de données à stocker et à traiter. 

Tout cela minimise les tâches administratives et le coût du traitement des données. Hadoop est un open source et gratuit, et son utilisation ne nécessite pas de matériel de haute performance et coûteux.

Défis à l’utilisation de Hadoop

L’écosystème Hadoop fait aussi place à des difficultés majeures. L’une d’elles concerne principalement la sécurisation des données fragmentées. En particulier, son protocole d’authentification Kerberos constitue son atout principal en matière de protection, ne dispose pas encore d’un système de stockage et le cryptage du réseau. En outre, étant écrit en Java, un langage de programmation courant et utilisé par un large panel d’utilisateurs, Hadoop est marqué par une certaine vulnérabilité. Cela étant dit, de nouvelles technologies et outils avancés sont en train d’émerger pour régler cette problématique au fur et à mesure. 

Mais ensuite, la programmation Hadoop (avec l’algorithme MapReduce) est loin d’être utilisable en toute situation, sachant qu’elle traite essentiellement les données de grande taille. Elle accède difficilement aux fichiers de petite taille en grande quantité. Son exécution est également peu efficace dans un tel environnement. En plus, destinée aux requêtes d’information simples et aux problèmes pouvant être divisés en lots indépendants, elle échoue face dans les tâches analytiques itératives et interactives. 

Par ailleurs,  mis à part l’inexistence d’outils complets et conviviaux pour le nettoyage (optimisation, standardisation, etc), la gestion de données et de métadonnées sur Hadoop, les talents manquent en ce qui touche la programmation en Java du framework de traitement de données (MapReduce en l’occurrence). En fait, Hadoop est connu pour être difficile à déployer.

Fonctionnement de Hadoop 

Le mécanisme de Hadoop peut avant tout se résumer par la répartition du stockage et les traitements de données sur plusieurs nœuds. En cela, l’architecture du framework repose sur un ensemble de composants et modules (principaux et supplémentaires) au fonctionnement complémentaire.

Hadoop : ses composants et modules

La plateforme Hadoop utilise un composant commun qui réunit les utilitaires et bibliothèques prenant en charge les autres modules : Hadoop Common ou Hadoop Core. Mais le noyau de Hadoop se compose surtout de ces deux éléments principaux : HDFS ou Hadoop Distributed File System pour la partie stockage, et MapReduce pour la fonction de traitement. Mais d’autres composants viennent s’y ajouter pour les besoins des processus mis en œuvre sur la plateforme entre autres.

  • HDFS ou le système de fichier distribué de Hadoop est le composant principal de son système de stockage. Il est conçu pour s’adapter à la gestion et au stockage à grande vitesse des mégadonnées qui se mesurent en térabytes ou en pétabytes. Il sert à distribuer un seul cluster Hadoop vers une multitude de nœuds, sans qu’il n’y ait aucun besoin d’administration préalable des données. HDFS permet principalement de pallier les pannes de serveurs, d’accéder à des données en flux continu, de stocker les mégadonnées, et pour une utilisation mobile des applications Hadoop. L’architecture des clusters HDFS repose sur différents nœuds catégorisés en deux groupes : namenode pour nœud de noms (la pièce maîtresse d’un système de fichiers HDFS) et datanode pour nœuds de données. 
  • MapReduce, lui, est un algorithme de programmation appartenant à Google, ayant la capacité de décomposer des quantités massives de données pour les traiter en parallèle. Cela permet la mise en œuvre de l’analyse d’une grande quantité de données contenue dans le HDFS de Hadoop. C’est un composant hautement extensif et fonctionnant sur un vaste panel de clusters de différentes machines. Il assure en temps réel la répartition et le plan d’exécution des programmes, tout en prenant en charge l’organisation en cas de pannes machines et d’indisponibilité des serveurs.

Au HDFS et à MapReduce s’est ajouté un autre composant essentiel, à savoir YARN ou Yet Another Resource Negotiator qui est le gestionnaire de ressources et planificateur de tâches de Hadoop. La liste des composants outils qui complémentent le framework ne cesse de s’allonger.

Les outils dans Hadoop

L’écosystème Hadoop est enrichi au fur et à mesure que le concept et l’utilisation de la Big data évolue. Les outils liés au fonctionnement des versions du framework sont nombreux. On retrouve notamment un certain nombre de systèmes de gestion de base de données, comme Cassandra ou HBase qui sont conçus pour fonctionner dans le cadre de toute architecture de programmation distribuée, ou encore Flume, CHukwa ou Zookeeper. Oozie permet en particulier de planifier les tâches de la plateforme. 

On peut également évoquer les alternatives à MapReduce en matière de datamining, de récupération et de traitement de données du HDFS, comme Hive ou encore Pig. Ces outils permettent d’extraire les données par le moyen des requêtes SQL. D’autres outils d’amélioration sont répertoriés, pour ne citer que : 

  • Ambari crée une interface visant à simplifier la gestion des services et composants Hadoop.
  • HCatalog gère les tableaux et les métadonnées, permettant aux usagers de partager et d’accéder aux données. Cet outil facilite l’utilisation des données avec Hive ou Pig par exemple.
  • Solr est un moteur de recherche scalable et open source basé sur une bibliothèque Java pour l’analyse, l’indexation et la recherche.
  • Hadoop Spark est un outil d’analyse et de traitement parallèle de données à grande échelle
  • Sqoop est un mécanisme de connexion et de transfert visant à faciliter l’échange efficace entre Hadoop et le système de gestion de bases de données relationnelles.

Les modes d’exécution de Hadoop

On attribue 3 modes d’installation et d’exécution à Hadoop :

  • Le mode distribué est le fonctionnement normal du système à mettre en œuvre dans un environnement de production : le cluster communique avec un ensemble de serveurs interconnectés dans un réseau. Chaque démon s’exécute sur un nœud distinct. Hadoop fonctionne sur un grand nombre de machines.
  • Le mode local ou standalone consiste en un fonctionnement sur un seul poste de travail ou machine virtuelle. C’est le mode d’exécution recommandé au stade du développeur, en vue de tests très simples ou d’un débogage de logiciel notamment.
  • Le mode pseudo-distribué où Hadoop fonctionne aussi sur un seul poste, mais les tâches de chaque daemon sont lancées à partir d’un processus java distinct.

Place et utilisations de Hadoop dans les entreprises

Un ensemble de composants open source et libre, Hadoop répond aux besoins en termes de gestion et de traitement de fortes volumétries de données. En tant que plateforme Big Data, il est aujourd’hui utilisé de multiples manières par les entreprises.

Archivage de données à coût réduit

Hadoop permet de réduire les dépenses en équipements, sachant que le framework fonctionne dans un système en réseau d’ordinateurs basiques peu coûteux. Cela donne lieu à du stockage et de l’archivage low-cost d’un vaste ensemble de données transactionnelles ou celles issues des réseaux sociaux, de la data science, des machines et des flux de clics, etc.

Sandbox d’algorithmes analytiques

Hadoop constitue un environnement de développement où des algorithmes d’analyse de données évoluent, permettant aux entreprises de découvrir et de mesurer de nouvelles opportunités. La plateforme Big data de Hadoop favorise l’innovation à moindre coût.

Data lake façon Hadoop 

Les entreprises peuvent utiliser cette plateforme pour concevoir un stockage centralisé renfermant des données massives au format brut et granulaire, issues d’un grand nombre de sources : un data lake. Grâce à la constitution d’une telle plateforme de gestion des données composée d’un ou  de plusieurs clusters Hadoop, elles disposeront ainsi d’un ensemble de données au format plus flexible à destination des data scientists et des analystes. 

Il convient de faire la différence avec les Data Warehouses qui sont également des « entrepôts de données », mais non censés remplacer les data lakes. Autrement dit, ce framework Big data n’a pas vocation à remplacer les datas warehouses qui sont des bases de données relationnelles (stockées sur des serveurs). Mais la finalité commune est de créer une plateforme de stockage et de traitement de données variées, de façon à prendre en charge différentes utilisations et de pouvoir les intégrer à différents niveaux.

L’IoT grâce à Hadoop 

L’internet des objets (IoT) est une nouvelle réalité qui va de plus en plus pénétrer le quotidien de chacun. Basé sur un streaming en continu des données, l’IoT aura besoin d’une structure de stockage et de traitement de Big data disponible et peu sensible aux pannes matérielles. L’utilisation de Hadoop est ainsi de mise pour de nombreuses raisons : 

  • Hadoop est capable de stocker et de traiter n’importe quels volumes et types de données. C’est également un framework évolutif.
  • Pas de risque de problèmes de performance ou d’arrêt de fonctionnement en raison d’événements imprévus, car le travail est réparti entre de nombreux clusters. 
  • Cadre open source basé sur Java, Hadoop est compatible avec toutes les plateformes. 
  • Hadoop dispose d’une bibliothèque dans son module Common lui permettant de détecter et prévenir les défaillances de la couche applicative.

Création de système de recommandation web

Il s’agit sans doute d’une des utilisations phares de Hadoop.Grâce à lui, les entreprises comme Facebook et LinkedIn peuvent émettre des suggestions pertinentes d’amis ou de contacts. C’est en utilisant ce framework que Netflix ou encore eBay proposent un contenu adapté à chacun de ses utilisateurs. D’autres optimisations marketing sont possibles avec Hadoop.

Hadoop hier, aujourd’hui et demain

Dans les premières années 2000, les moteurs de recherche étaient encore loin du niveau actuel d’automatisation des résultats. Doug Cutting et Mike Cafarella avaient alors à l’idée d’accélérer l’affichage des résultats de recherche web en répartissant les collectes et les calculs de données sur différentes machines, lesquelles devaient simultanément réaliser plusieurs tâches. Ils fondent ainsi les bases du framework open source, scalable et fiable, qu’est devenu Hadoop depuis 2011 après 5-6 années de développement. Le monde des programmeurs connaît aujourd’hui trois versions de Hadoop.

Hadoop 1 vs Hadoop 2 vs Hadoop 3

La première version de Hadoop est sortie en 2011 et se suffisait à sa conception la plus simple, à savoir : le HDFS (avec des fonctions de sécurité améliorées), son système de fichiers WebHDFS donnant accès à un volume HDFS via http, et MapReduce.

Hadoop 2 est sorti en 2012 et comporte des améliorations au fur et à mesure, jusqu’à la dernière mouture de novembre 2017 (Hadoop 2.90). En plus de HDFS et de MapReduce, la nouvelle version emporte le module de gestion des ressources de clusters YARN, ainsi que de nouvelles fonctionnalités de traitement de données. Le framework s’offre alors des éléments de composition visant à optimiser sa polyvalence, pour ne citer qu’une option de système fichier à haute disponibilité et une compatibilité Windows, etc.

La première release 3.0 est également sorti vers la fin de 2017 avec un autre lot d’améliorations et d’innovations :

  • Davantage d’agilité en matière de gestion des conteneurs de stockage, pour une création et un déploiement plus rapide d’applications. 
  • Un coût d’installation/exécution réduit, tout en offrant un espace de stockage deux fois plus élevé et en offrant la même qualité de sauvegarde. 
  • Possibilité de gérer plusieurs namenodes : ces nœuds maîtres jouent un rôle très important dans Hadoop en déterminant comment les données entrées seront distribuées, le nombre de nœuds de données dans lesquels les données réelles seront distribuées. 
  • Possibilité d’augmenter significativement la taille des infrastructures, sans problème de stabilité au niveau des disques durs
  • Davantage de facilité dans la distribution des tâches. 

La plateforme Big Data ouvre aujourd’hui à de nouvelles perspectives pour les développeurs d’algorithmes de machine learning et d’applications d’intelligence artificielle. Le framework prend en charge plus de matériels de stockage et améliore les analyses. Hadoop demeure Open Source et totalement gratuit même s’il existe de plus en plus de distributions commerciales. Il est maintenu par un réseau de développeurs de haut niveau des quatre coins du monde. Tout le monde peut contribuer à son développement et en tirer profit. 

Vous souhaitez vous former au Big Data ? Retrouvez les formations Data Full Stack et Data Analyst qui vous forment aux métiers de Data Analyst, Data Scientist, Data Engineer et AI Scientist.
Merci pour votre lecture ! Si vous souhaitez lire nos prochains articles autour de la Data et de l’IA, vous pouvez nous suivre sur FacebookLinkedIn et Twitter pour être notifié lorsqu’un nouvel article est publié !