Azure HDInsight : répartir le travail entre plusieurs machines
Introduction
Azure HDInsight est un service Azure qui permet de déployer et d’exploiter des clusters destinés au traitement de grandes quantités de données, en utilisant des technologies open source comme Apache Spark, Hadoop, Hive, Kafka et HBase. Microsoft facilite la création de ces environnements et prend en charge une partie de leur exploitation.
Un cluster est un ensemble de machines, appelées nœuds, qui travaillent ensemble. Au lieu de confier un traitement volumineux à une seule machine, les moteurs comme Spark ou Hadoop répartissent les données et les opérations entre plusieurs nœuds.
HDInsight permet de créer un cluster adapté à la technologie choisie. Il propose donc plusieurs types de clusters, avec des rôles différents.
| Technologie | Rôle principal | Exemple d’utilisation |
|---|---|---|
| Apache Hadoop | Traiter des données par lots en répartissant les opérations entre plusieurs machines. | Analyser un grand historique de fichiers journaux. |
| Apache Spark | Exécuter des traitements distribués, notamment des transformations et des analyses de données. | Nettoyer et agréger des données de ventes. |
| Apache Hive / Interactive Query | Interroger des données avec un langage proche de SQL ; Interactive Query accélère certaines requêtes grâce à LLAP. | Calculer des indicateurs à partir de fichiers de données. |
| Apache Kafka | Recevoir, conserver et distribuer des flux d’événements. | Transporter des événements émis par des applications ou des équipements. |
| Apache HBase | Stocker de grandes quantités de données dans une base NoSQL et permettre des lectures et écritures ciblées. | Consulter des enregistrements dans un très grand jeu de données. |
Ces technologies sont complémentaires : Kafka transporte les événements, tandis qu’un moteur comme Spark peut les traiter. Elles ne sont pas toutes nécessaires dans une même solution.
Obsolescence des versions
Les versions 4.0 et 5.0 de HDInsight ont été retirées le 31 mars 2025. Au 1er octobre 2026, la documentation Microsoft indique que la version 5.1 reste pris en charge, sans date de fin de support ni de retrait annoncée.
Le stockage et le calcul peuvent être séparés
Pour de nombreux traitements, les données durables sont conservées dans Azure Blob Storage ou Azure Data Lake Storage, tandis que le cluster fournit les ressources de calcul.
Cette séparation permet, par exemple, de créer un cluster pour effectuer une analyse, puis de le supprimer en conservant les données et les résultats enregistrés dans le stockage externe. La suppression du cluster ne supprime pas les comptes de stockage associés. En revanche, les données conservées uniquement sur les disques du cluster nécessitent une attention particulière.
Un exemple concret
Imaginons une entreprise qui souhaite analyser les ventes de ses magasins :
- Les magasins déposent leurs fichiers de ventes dans Azure Data Lake Storage.
- Un cluster Spark HDInsight lit ces fichiers.
- Un traitement vérifie les données et calcule les ventes par magasin, produit et période.
- Les résultats sont enregistrés dans le stockage externe.
- Une application de reporting exploite ces résultats.
Cet exemple illustre un traitement ETL : extraire les données, les transformer, puis charger les résultats dans une destination. HDInsight peut également servir à analyser des journaux applicatifs ou à traiter des données provenant d’équipements IoT.
Les responsabilités et les coûts
Le caractère managé du service simplifie le déploiement, mais l’entreprise doit toujours concevoir ses traitements, choisir les capacités du cluster, configurer les accès et surveiller son fonctionnement.
La facturation repose notamment sur les nœuds du cluster et leur durée d’existence. Un cluster peut donc générer des coûts même lorsqu’aucun traitement n’est exécuté. Pour un traitement ponctuel, supprimer le cluster après avoir conservé les résultats peut réduire les dépenses ; les coûts du stockage externe continuent toutefois à s’appliquer.