News: 2022-02-24T07_22_55Z

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Quelles technologies pour gérer son projet Big Data cette année ?

(2022/02/24)


Quelles technologies pour gérer son projet Big Data cette année ?

jeudi 24 février 2022

De façon traditionnelle, la gestion des données a consisté à centraliser le stockage et le traitement des données sur un serveur placé dans une architecture clients/serveur. Avec l’explosion du volume de données, pour réussir à exploiter les « Big Data », l’approche n’est plus de centraliser le stockage et le traitement des données sur un serveur, mais de distribuer leur stockage et de paralléliser leur traitement sur plusieurs ordinateurs (un cluster).

Technologies pour gérer son projet Big Data

Aujourd’hui, il existe des centaines d’outils qui implémentent cette approche. La plupart de ces outils sont open source et sont déposés sous licence libre à la fondation Apache. Dans cet article, nous allons vous indiquer parmi toutes les technologies disponibles pour le Big Data , celles qui sont les plus propices pour gérer le projet de l’entreprise.

1 – Hadoop

La première technologie adéquate pour gérer votre projet Big Data cette année est sans aucun doute [1]Hadoop . Il s’agit d’une plateforme distribuée qui fournit un modèle de calcul et surtout, un système de fichiers distribué (le HDFS) pour le stockage en mode « Data Lake » des données de l’entreprise.

Même si son utilisation directe semble en déclin, Hadoop reste toujours la base de quasiment toutes les technologies du Big Data. Elles utilisent soit le HDFS, soit le MapReduce pour effectuer leurs traitements dans le Data center. Par exemple, le fonctionnement efficace de Hive repose beaucoup sur le HDFS et le MapReduce. De même, le fonctionnement de HBase repose indirectement sur le HDFS. Aussi, il est facile de développer des applications Big Data qui s’appuient sur les composants technologiques d’Hadoop. C’est pourquoi, nous vous recommandons de vous munir au départ de votre projet, d’un cluster Hadoop.

2 – Spark

Apache [2]Spark est actuellement le logiciel indispensable pour traiter les données massives . Avant d’expliquer ce que c’est que Spark, rappelons que pour qu’un algorithme puisse s’exécuter sur Hadoop, il faut qu’il soit parallélisable. Ainsi, on dit d’un algorithme qu’il est “scalable” s’il est parallélisable (et peut donc profiter de la scalabilité d’un cluster).

Hadoop est une implémentation d’un modèle de calcul particulier appelé « [3]MapReduce ». Le problème avec le MapReduce est qu’il est bâti sur un modèle de Graphe Acyclique Direct. En d’autres termes, l’enchaînement des opérations du MapReduce s’exécutent en trois phases séquentielles directes et sans détour (Map -> Shuffle -> Reduce) ; aucune phase n’est itérative (ou cyclique). Le modèle acyclique direct n’est pas adapté à certaines applications, notamment celles qui réutilisent les données à travers de multiples opérations, telles que la plupart des algorithmes d’apprentissage statistique, itératifs pour la plupart, et les requêtes interactives d’analyse de données. Spark est une réponse à ces limites, c’est un moteur de calcul qui effectue des traitements distribués en mémoire sur un cluster. Autrement dit, c’est un moteur de calcul in-memory distribué. Comparativement au MapReduce qui fonctionne en mode batch, le modèle de calcul de Spark fonctionne en mode interactif, c’est-à-dire, monte les données en mémoire avant de les traiter et est de ce fait très adapté au traitement de Machine Learning. Spark fournit 3 API pour la manipulation des données : Spark SQL, Spark ML, et Spark GraphX. Vous pouvez manipuler ces API à l’aide de 3 langages : Java, Scala et Python.

3 – Kafka

Les objets connectés, les objets intelligents, l’IoT de façon générale, a exacerbé les problématiques du traitement de données en temps réel. Pour nous, [4]Kafka est la troisième technologie à maîtriser pour gérer efficacement votre projet en cette année.

Pour comprendre Kafka, il faut comprendre Streaming et pour véritablement comprendre le concept de Streaming, il faut comprendre le concept d’objets connectés. Les objets connectés ou Internet des objets (IoT – Internet of Things en anglais) représentent l’extension d’Internet à nos vies quotidiennes. Ils génèrent des données en streaming et dans la plupart de ses problématiques, nécessitent que les données soient traitées en temps réel. Les modèles de calcul classiques ne sont pas adaptés aux problématiques temps réel que soulève l’IoT. Même les modèles de calcul interactif ne sont pas adaptés pour faire du traitement continu en temps réel. À la différence des données opérationnelles produites par les systèmes opérationnels d’une entreprise comme la finance, le marketing, qui même lorsqu’elles sont produites en streaming (ou au fil-de-l’eau) peuvent être "historisées" pour un traitement ultérieur, les données produites en streaming dans le cadre des phénomènes comme l’IoT ou Internet se périment (ou ne sont plus valides) dans les instants qui suivent leur création et exigent donc un traitement immédiat. En dehors des objets connectés, les problématiques métier comme la lutte contre la fraude, l’analyse des données de réseau sociaux, la géolocalisation, exigent des temps de réponse très faibles, quasiment de l’ordre de moins d’une seconde.

Pour résoudre cette problématique dans un contexte Big Data, il faut être capable d’ingérer les données en temps réel. Kafka est un système de messagerie Publish-Subscribe distribué, scalable et tolérant aux pannes. A la différence de ses confrères, il combine les fonctionnalités d’agrégation, de séquencement du Log, et les fonctionnalités du système de messagerie Publish-Subscribe pour le routage des données entre plusieurs sources opérationnelles et plusieurs applications abonnées. De plus, pour les besoins de haute performance il est scalable, car il tourne sur un cluster et offre un haut débit pour le transfert de données.

Sans entrer dans le détail de Kafka, vous devez simplement retenir que Apache Kafka est la technologie de base la plus appropriée actuellement pour traiter les données générées en streaming ou nécessitant des traitements en temps réel.

4 – Kubernetes

Toutes les technologies précédentes permettent de développer des applications Big Data. Mais une fois qu’on a les applications, il faut les déployer en production pour utilisation réelle dans l’entreprise. C’est là que [5]Kubernetes entre en jeu. Kubernetes est un orchestrateur de containers Dockers. La dockerisation » est indispensable en Big Data avec le grand nombre d’applications déployées qui se disputent les ressources du même cluster. Kubernetes va permettre d’affecter dynamiquement en fonction des besoins, les ressources du Datacenter entre les différentes tâches ou applications déployées sur le cluster. Pour nous, c’est la 4ème technologie indispensable cette année pour réussir vos projets Big Data.

Voilà ! Nous vous avons fourni les 4 applications qui à notre sens sont indispensables pour réussir vos projets Big Data cette année. Avez-vous d’autres applications auxquelles vous pensez ? Pensez-vous que nous avons oublié une technologie particulière ? Dites-le nous en commentaire.

[6]Juvénal CHOKOGOUE

Lisez également : [7]Publication du livre « Maîtrisez l’utilisation des technologies Hadoop »

[8]



[1] https://hadoop.apache.org

[2] https://spark.apache.org

[3] https://www.data-transitionnumerique.com/hadoop-mapreduce/

[4] https://kafka.apache.org

[5] https://github.com/kubernetes

[6] https://www.linkedin.com/in/juvenal-chokogoue

[7] https://www.toolinux.com/?On-a-lu-pour-vous-Maitrisez-l-utilisation-des-technologies-Hadoop

[8] https://www.toolinux.com/?quelles-technologies-pour-gerer-son-projet-big-data-cette-annee#forum



When neither their property nor their honor is touched, the majority of men
live content.
-- Niccolo Machiavelli