Juvénal CHOKOGOUE, Consultant Business Analytics et Big Data
Avec l'avènement du Big Data, l'idée n'est plus de stocker et traiter les données sur un serveur [aussi puissant soit-il], mais de distribuer le stockage des données et de paralléliser le traitement de ces données sur plusieurs nœuds d'une grappe (plusieurs dizaines, voir centaines, voir milliers de PC classiques interconnectés entre eux par des câbles réseaux au moyen de commutateurs).
Nous reviendrons sur les architectures de traitement massivement parallèle dans un autre article. Ce "nouveau" modèle informatique est appelé le "cluster computing", ou en français informatique en grappes. Dans le cluster computing, les nœuds sont stockés dans des casiers (8 à 64 nœuds par casier). Les nœuds dans un casier sont connectés par un câble réseau à forte bande passante typiquement de l'ordre du Gigaoctet par seconde. Il peut y avoir plusieurs casiers de nœuds dans un cluster et dans ce cas, les casiers sont connectés entre eux soit par un autre niveau de câble réseau ou au moyen de commutateurs (switches). Dans cette configuration, l’évolutivité (« scalability », c’est à dire la montée en charge) est linéaire (c'est-à-dire proportionnelle à la croissance de la volumétrie des données) et se fait simplement en ajoutant de nouveaux nœuds au cluster. Cet avantage (montée en charge linéaire) rend le modèle du cluster computing approprié pour la distribution du stockage et la parallélisation des traitements des données.
Dans ce modèle, le principal problème est la perte possible d'un nœud (par exemple la panne du disque dur d'un des nœuds dans un cluster) ou la panne d'un casier entier. La solution à ce problème prend deux formes :
- les fichiers de données doivent être stockés de façon redondante sur plusieurs nœuds dans plusieurs casiers. Si l'on ne duplique pas les fichiers sur plusieurs nœuds, si un nœud tombe en panne, tous ses fichiers seront indisponibles jusqu'à ce que le nœud soit changé ;
- les calculs (traitements) doivent être divisés en tâches et parallélisés, de manière à ce que si une tâche n'est pas traitée entièrement, elle n'affecte pas les autres tâches. La redondance des données sur plusieurs disques durs est supportée par un nouveau type de Système de Fichiers appelé "Système de Fichier Distribué" (DFS). Le découpage des traitements en plusieurs tâches, et la parallélisation de ces tâches sur un grand nombre de nœuds, se font à l'aide d'un nouveau modèle de programmation créé à l'origine par Google appelé le "MapReduce".
L'implémentation la plus populaire (et la plus mature) du MapReduce s'appelle "Hadoop". Hadoop a été repris par la fondation Apache et est actuellement disponible en Open Source. Hadoop est disponible avec le modèle de traitement massivement parallèle de Google, le MapReduce et son propre Système de Fichier Distribué appelé "HDFS" (Hadoop Distributed File System)
Oui, vous avez maintenant compris ! Vous pouvez utiliser Hadoop pour gérer des traitements de données à grande échelle de manière complètement tolérante aux pannes. Tout ce que vous aurez à écrire ce sont deux fonctions appelées "Map" et "Reduce", le système gèrera pour vous l'exécution parallèle, la coordination des tâches qui exécutent le MapReduce, et les éventuelles pannes.
A noter : à la base, le MapReduce fonctionne en mode "Batch" (c'est-à-dire que les traitements se font sur disque). Le mode "Batch" n'étant pas adapté à de nombreuses problématiques d’analyse de données, les nouvelles versions d'Hadoop ont vu la mise à jour du modèle MapReduce par un modèle plus flexible supportant plusieurs modes de traitements, appelé YARN (Yet Another Resource Negotiator).
Nous reviendrons sur les architectures de traitement massivement parallèle dans un autre article. Ce "nouveau" modèle informatique est appelé le "cluster computing", ou en français informatique en grappes. Dans le cluster computing, les nœuds sont stockés dans des casiers (8 à 64 nœuds par casier). Les nœuds dans un casier sont connectés par un câble réseau à forte bande passante typiquement de l'ordre du Gigaoctet par seconde. Il peut y avoir plusieurs casiers de nœuds dans un cluster et dans ce cas, les casiers sont connectés entre eux soit par un autre niveau de câble réseau ou au moyen de commutateurs (switches). Dans cette configuration, l’évolutivité (« scalability », c’est à dire la montée en charge) est linéaire (c'est-à-dire proportionnelle à la croissance de la volumétrie des données) et se fait simplement en ajoutant de nouveaux nœuds au cluster. Cet avantage (montée en charge linéaire) rend le modèle du cluster computing approprié pour la distribution du stockage et la parallélisation des traitements des données.
Dans ce modèle, le principal problème est la perte possible d'un nœud (par exemple la panne du disque dur d'un des nœuds dans un cluster) ou la panne d'un casier entier. La solution à ce problème prend deux formes :
- les fichiers de données doivent être stockés de façon redondante sur plusieurs nœuds dans plusieurs casiers. Si l'on ne duplique pas les fichiers sur plusieurs nœuds, si un nœud tombe en panne, tous ses fichiers seront indisponibles jusqu'à ce que le nœud soit changé ;
- les calculs (traitements) doivent être divisés en tâches et parallélisés, de manière à ce que si une tâche n'est pas traitée entièrement, elle n'affecte pas les autres tâches. La redondance des données sur plusieurs disques durs est supportée par un nouveau type de Système de Fichiers appelé "Système de Fichier Distribué" (DFS). Le découpage des traitements en plusieurs tâches, et la parallélisation de ces tâches sur un grand nombre de nœuds, se font à l'aide d'un nouveau modèle de programmation créé à l'origine par Google appelé le "MapReduce".
L'implémentation la plus populaire (et la plus mature) du MapReduce s'appelle "Hadoop". Hadoop a été repris par la fondation Apache et est actuellement disponible en Open Source. Hadoop est disponible avec le modèle de traitement massivement parallèle de Google, le MapReduce et son propre Système de Fichier Distribué appelé "HDFS" (Hadoop Distributed File System)
Oui, vous avez maintenant compris ! Vous pouvez utiliser Hadoop pour gérer des traitements de données à grande échelle de manière complètement tolérante aux pannes. Tout ce que vous aurez à écrire ce sont deux fonctions appelées "Map" et "Reduce", le système gèrera pour vous l'exécution parallèle, la coordination des tâches qui exécutent le MapReduce, et les éventuelles pannes.
A noter : à la base, le MapReduce fonctionne en mode "Batch" (c'est-à-dire que les traitements se font sur disque). Le mode "Batch" n'étant pas adapté à de nombreuses problématiques d’analyse de données, les nouvelles versions d'Hadoop ont vu la mise à jour du modèle MapReduce par un modèle plus flexible supportant plusieurs modes de traitements, appelé YARN (Yet Another Resource Negotiator).
Autres articles
-
Converteo obtient la spécialisation Data Analytics Services de Google Cloud
-
Starburst intègre le support du catalogue Polaris pour Apache Iceberg
-
Teradata s’associe à Google Cloud pour proposer des offres d’IA de confiance à l’échelle de l’entreprise afin d’accélérer le délai de rentabilité et le ROI
-
Starburst et Google Distributed Cloud proposent une solution d'analyse des données sécurisée aux entreprises hautement réglementées
-
Databricks annonce l'acquisition de Tabular, la société fondée par les créateurs d'Apache Iceberg