Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Hadoop
  3. Architecture infrastructurelle d’Hadoop
Extrait - Hadoop Devenez opérationnel dans le monde du Big Data
Extraits du livre
Hadoop Devenez opérationnel dans le monde du Big Data
1 avis
Revenir à la page d'achat du livre

Architecture infrastructurelle d’Hadoop

Introduction

« On ne devrait pas essayer de faire des serveurs de plus grande capacité, on devrait plutôt ajouter plusieurs nœuds d’ordinateurs à ces serveurs. » (Grace Hopper)

Hadoop est une implémentation du MapReduce de Google et de son système de fichiers distribué. Le MapReduce a été conçu pour faire du traitement massivement parallèle à l’aide d’un cluster. Vous pouvez installer une implémentation du MapReduce dans un cluster pour gérer des traitements de données à grande échelle de manière complètement tolérante aux pannes. Cependant, toutes les configurations de clusters ne sont pas adéquates pour exécuter du MapReduce. Dans ce chapitre, nous allons clarifier la notion de cluster, étudier les choix possibles quant à la construction d’un cluster de façon générale, nous en expliquerons les conséquences, et nous préciserons la configuration adéquate de tout cluster candidat à l’exécution du MapReduce. La compréhension de ces choix architecturaux est fondamentale pour comprendre comment le MapReduce s’exécute dans un cluster. De plus, avec la transition numérique en cours, le MapReduce sera sûrement le mode de traitement par défaut dans votre travail. Donc maîtriser...

Types d’architectures distribuées

Le premier critère dans la construction de l’architecture distribuée nécessaire pour exécuter le MapReduce est le type d’architecture distribuée. En informatique, il existe deux types d’architectures distribuées : les architectures délocalisées, ou architectures client/serveur, et les architectures distribuées.

1. Architectures délocalisées ou client/serveur

Le premier type d’architecture de système informatique est l’architecture client/serveur. Formellement, il s’agit d’une architecture de système informatique dans laquelle un processus (un ordinateur, une application informatique) appelé serveur agit comme fournisseur de ressources pour d’autres processus appelés clients, qui demandent ces ressources. Les ressources fournies par le processus serveur peuvent être le résultat d’une requête SQL, le résultat d’une impression papier, une page web, etc. Le processus serveur et les processus clients s’exécutent généralement sur des ordinateurs différents reliés au même réseau. Ici, les tâches qui sont centralisées vers le serveur sont délocalisées et réparties sur plusieurs niveaux d’entrée du système informatique (PC, ordinateur portable, tablette, etc.). Le but visé est de décharger l’ordinateur central du plus grand nombre de fonctions possibles. Deux niveaux de délocalisation des tâches sont possibles dans cette architecture : l’architecture client/serveur à deux niveaux (en anglais, two-tiers) et l’architecture client/serveur à trois niveaux (three-tiers).

a. Architecture client/serveur à deux niveaux (two-tiers)

Dans cette architecture, deux processus se partagent les tâches et fonctions à exécuter. Généralement, la tâche de traitement est délocalisée et effectuée par le client, tandis que les tâches d’administration sont exécutées par le processus serveur. Parce que le client supporte une partie de la charge, il est souvent appelé client lourd. Ce type d’architecture est très utilisé pour les serveurs de bases...

Modes de partage des ressources dans le cluster

La deuxième décision à prendre quant à la mise en place d’une infrastructure Hadoop est ce que nous appelons le mode de partage des ressources. Nous avons vu précédemment que le cluster computing est l’architecture distribuée qui correspond à Hadoop, cela à cause de ses caractéristiques de scalabilité, de tolérance aux pannes et de haute disponibilité ; la scalabilité étant la clé d’adoption du cluster en entreprise. Il est vrai que nous avons dit plus haut que l’ajout des nœuds dans le cluster est le moyen par lequel la scalabilité linéaire est atteinte dans le cluster. En réalité, l’ajout des nœuds dans le cluster à lui seul ne garantit pas la scalabilité, cet ajout doit se combiner à un mode de partage de ressources qui va déterminer le niveau général de scalabilité du cluster. Ce que nous entendons par mode de partage des ressources, c’est la façon dont les ressources nœuds telles que la mémoire, le disque dur, la puissance de traitement du processeur, sont gérées collectivement pour effectuer des traitements distribués et fournir une performance supérieure à la performance de tous les nœuds réunis. Le mode de partage des ressources a un impact direct sur le niveau de scalabilité du cluster. De plus, en fonction du mode de partage des ressources, les problématiques de traitement des données que vous pourriez gérer avec votre cluster ne seront pas les mêmes. La connaissance de ces modes est donc nécessaire si vous souhaitez développer des applications qui profitent pleinement du cluster. L’objectif ici est de vous faire comprendre ces différents modes de partage des ressources et de vous présenter les cas dans lesquels chacun des modes est approprié. Par définition, un nœud dans un cluster est constitué de quatre composants : le processeur ou CPU, qui exécute tous les traitements de données ; la mémoire RAM, qui est utilisée pour charger les programmes en cours d’exécution ; le réseau, (un port réseau qui permet de connecter...

Modes de communication des nœuds dans le cluster

Dans les regroupements où plusieurs machines sont reliées entre elles pour gérer le stockage et le traitement des données, comme c’est le cas avec le cluster ou le grid, une question demeure : quelle machine est responsable dans le cluster de l’exécution d’une requête ? Cette question est valable dans le cadre d’un cluster Hadoop. Répondre à cette question est le troisième critère nécessaire pour comprendre l’architecture infrastructurelle d’Hadoop, la façon dont les travaux sont répartis sur les nœuds et coordonnés de manière à gérer les pannes éventuelles dans le cluster. Les modèles de communication des nœuds dans les clusters répondent à cette question. Ils déterminent le ou les responsables lorsqu’une requête est adressée au cluster. Pour rappel, en informatique, deux systèmes communiquent à l’aide de ce que l’on appelle un protocole de communication (ou protocole informatique ou protocole réseau). Un protocole informatique est un ensemble de spécifications qui permettent à deux ordinateurs de communiquer. Par exemple, dans un cluster shared-memory, les nœuds accèdent à la mémoire partagée à l’aide...

Modes de traitement de données dans le cluster

Le quatrième et dernier critère indispensable pour comprendre la configuration d’un cluster Hadoop est sans aucun doute les modes de traitement de données. En effet, les modes de partage de ressources dans le cluster ont montré en filigrane que le composant dans lequel on décide de stocker les données est primordial à la fois pour le niveau de scalabilité du cluster et pour sa performance. Soit on décide de stocker les données sur le disque dur (shared-disk), soit on décide de les stocker dans la mémoire (shared-memory). L’incidence lorsqu’on traite les données à partir du disque dur ou à partir de la mémoire n’est pas la même. Dans cette section, nous allons vous expliquer comment et pourquoi.

Dans un ordinateur, la localisation des données qui doivent être traitées a une incidence vitale sur le traitement. Elle demande de faire un arbitrage important entre la performance et la capacité. Deux choix sont possibles pour la localisation des données dans l’ordinateur : soit le disque dur, soit la RAM. Lorsque les données sont chargées en RAM, le traitement est plus rapide. Mais compte tenu de la taille limitée de la RAM, le volume de données qu’on peut analyser est limité.

Lorsque les données sont stockées sur le disque dur, on peut traiter de bien plus gros volumes de données, mais le traitement est plus lent. Lorsqu’on effectue un traitement à partir du disque dur, on fait ce qu’on appelle du batch processing, ou traitement par lots ou traitement sur disque. Lorsqu’on traite des données qui sont chargées en mémoire, on fait ce qui s’appelle de l’in-memory processing, ou traitement en mémoire.

1. Traitement sur disque ou batch processing

Pour comprendre le traitement sur disque, il faut comprendre les principes fondamentaux du traitement de données dans un ordinateur. Par "principes", nous entendons des lois qui ne changent pas, ni avec le temps, ni avec la technologie. Quatre principes régissent le traitement de données dans un ordinateur.

images/02EI11.png

Figure 12 : Architecture du traitement dans un ordinateur.

  • 1er principe : tout traitement informatique des données...

Types de parallélismes des calculs dans un cluster

Comme nous l’avons déjà dit, dans le Numérique, les traitements sont exécutés en parallèle. La baisse du coût des ordinateurs favorise la constitution des clusters et des grilles de calcul pour le traitement massivement parallèle. Étant donné que le parallélisme est la clé du traitement dans l’ère numérique, il est indispensable que vous compreniez les principes qui régissent le traitement parallèle, et c’est l’objectif de cette section. Par définition, l’exécution des traitements dans un ordinateur se fait de façon synchrone, c’est-à-dire que les fonctions et procédures qui constituent les traitements s’exécutent de façon séquentielle, que ce soit en local dans une machine ou dans une machine distante. Dans l’exécution synchrone, le nombre de processeurs qui sont sur l’ordinateur ou le nombre de machines du cluster n’a aucun impact sur les traitements, un seul processeur (cas d’une machine) ou un seul nœud (cas d’un cluster) est utilisé pour l’exécution des traitements. Cette technique a fait son temps, mais aujourd’hui est inefficace, d’une part parce qu’elle ne permet pas de profiter de toute la puissance offerte par les nouvelles architectures de processeurs (les nouveaux processeurs possèdent plusieurs cœurs, ou unités de calcul), et d’autre part parce qu’elle ne permet pas de bénéficier des effets d’échelle entraînés par la constitution des clusters ou des grilles de calcul. C’est pour corriger ces manquements que l’exécution parallèle a été développée. Concrètement, exécuter un traitement parallèle consiste à le diviser en tâches et à exécuter ces tâches en concurrence (en même temps) sur les unités de calcul d’un processeur SMP (Symmetric Multi Processing), ou d’un processeur MPP (Massivelly Parallel Processing) dans le cas d’une machine individuelle, ou sur les nœuds d’un cluster (si le traitement est exécuté sur plusieurs machines). Par contre, à la différence...

Choix architecturaux d’un cluster Hadoop

Hadoop est une implémentation du MapReduce et du GFS. Maintenant que vous maîtrisez les concepts et les principes relatifs aux architectures de calcul distribué, il est temps que nous revenions sur la configuration d’un cluster Hadoop.

Un cluster Hadoop est simplement un cluster sur lequel Hadoop a été installé. Deux éléments sont installés sur un tel cluster : l’ensemble des classes JAVA d’implémentation de l’algorithme MapReduce d’une part et d’autre part le HDFS comme système de fichiers sur l’ensemble des disques durs des nœuds du cluster.

Par rapport à tout ce qui vient d’être présenté, la configuration d’un cluster adéquat pour Hadoop respecte les principes suivants :

  • Hadoop s’installe sur un cluster exclusivement. Les grilles de calcul et les architectures client/serveur ne sont pas adéquates pour Hadoop. Le cluster computing fournit les trois caractéristiques clés, nécessaires pour le traitement massivement parallèle, à savoir la scalabilité horizontale et linéaire, la tolérance aux pannes et la haute disponibilité.

  • Hadoop s’appuie sur un cluster en mode de communication maître/esclave. Pour des raisons culturelles, dans un cluster sur lequel est installé Hadoop ou toute autre implémentation du MapReduce, le nœud maître est désigné par "name node" (que nous traduirons par "nœud de référence" tout au long de l’ouvrage) et les nœuds esclaves sont désignés par "data nodes" (que nous traduirons par "nœuds de données"). Le nœud de référence (name node), s’assure de la répartition des tâches entre les nœuds de données du cluster et gère...

Conclusion

L’explosion des données qui caractérise le Numérique exige un changement d’approche infrastructurelle dans la façon dont on a toujours géré les traitements de données. Les infrastructures centralisées autour d’un serveur et la version améliorée de l’architecture client/serveur ne sont plus appropriées. Les architectures appropriées sont les architectures distribuées, ou architectures couramment qualifiées de massivement parallèles (MPP). Plusieurs critères entrent en compte dans la construction et la mise en œuvre d’une telle architecture : le type d’architecture distribuée, le mode de partage des ressources, la topologie de réseau ou mode de communication dans le cluster, et le mode de traitement des données. En ce qui concerne Hadoop, l’architecture adéquate est un cluster shared-nothing maître/esclave. Grâce aux avantages de scalabilité horizontale, de linéarité, de tolérance aux pannes et de haute disponibilité, cette architecture convient parfaitement à Hadoop et à la majeure partie des problématiques de données du Numérique. Il est fort probable que, dans un futur proche, cette architecture devienne le standard de traitement de données, comme l’a été l’architecture...

Guide d’étude du chapitre

1. Présentation des guides d’étude

Ceci est le premier d’une série de guides d’étude disponibles à chaque fin de chapitre, pour vous aider à tester les connaissances acquises. Vous pouvez utiliser ces guides dans le cadre d’une étude individuelle ou d’un travail en équipe, ou comme support de cours. Ils vous aideront à assimiler les concepts et les principes essentiels nécessaires au développement de vos compétences sur Hadoop et à votre transition efficace vers le Numérique.

2. Comment utiliser le guide d’étude ?

Nous avons formulé dans les guides d’étude trois types de questions :

  • Les questions à réponse fixe, dont la réponse nécessite la formulation d’un principe ou d’un concept. Elles peuvent être exprimées sous forme de QCM ou de questions ouvertes. Les questions à réponse ouverte n’ont pas de réponse "correcte" à proprement parler. La réponse dépend de votre appréciation. Elles ont en fait pour but de vous interpeller sur ce que vous ferez si le cas mis en œuvre par la question venait à se présenter à vous dans la vie réelle.

  • Les questions de réflexion, qui n’ont pas non plus de réponse fixe....

À retenir

  • Les architectures centralisées ne sont pas efficaces pour le traitement de données dans le contexte du Numérique.

  • Il faut changer de paradigme infrastructurel, quitter des architectures centralisées pour aller vers les architectures distribuées.

  • Il existe deux types d’architectures distribuées : les architectures délocalisées et les architectures distribuées.

  • Les architectures délocalisées consistent à répartir la charge de calcul entre un client et un serveur.

  • Il existe deux types d’architectures délocalisées : l’architecture client/serveur à deux niveaux et l’architecture client/serveur à trois niveaux.

  • Les architectures distribuées consistent à paralléliser l’exécution d’un travail dans un ensemble de machines interconnectées.

  • Les architectures distribuées conviennent aux exigences du traitement de données dans le Numérique car elles fournissent quatre avantages majeurs : la scalabilité horizontale, la scalabilité linéaire, la tolérance aux pannes et la haute disponibilité.

  • Il existe deux types d’architectures distribuées : le cluster computing (grappe de calcul) et le grid computing (grille de calcul).

  • La grille de calcul consiste à répartir les charges de calcul...