Bien comprendre Hadoop pour gérer les Big Data
Hadoop est devenu aujourd’hui le moteur d’applications clés pour les entreprises. Mais pourquoi ce framework attire-t-il le monde professionnel ?
Hadoop est certainement la technologie Open Source aujourd’hui associée le plus étroitement à la gestion des données en volume et les applications dites Big Data. Ce framework a vu le jour en 2006, d’abord chez Yahoo, inspiré partiellement par des idées mis en forme par Google dans des documents techniques. Plus tard, Facebook, Twitter et LinkedIn ont eux-aussi basculé et, un point clé, commencé à contribuer à son développement. Aujourd’hui, Hadoop est devenu un écosystème complexe de composants et outils, dont certains se retrouvent packagés dans des distributions commerciales du framework.
En s’exécutant sur des clusters de serveurs de commodité, Hadoop propose une approche peu couteuse, mais très performante, pour mettre en place une architecture dédiée à des traitements analytiques. Au fur et à mesure que ces capacités fonctionnelles gagnaient en popularité, le framework s’est immiscé dans l’industrie pour soutenir des applications de reporting et d’analytique, mêlant données structurées et de nouvelles formes – les données semi ou non structurées. Ces dernières peuvent être des données collectées lors la navigation sur Internet, liées à des campagnes de publicité en ligne, de media sociaux, de capteurs générées par des équipements industriels ou d’autres terminaux issus de l’Internet des objets.
Hadoop : qu’est-ce que c’est ?
Le framework Hadoop comprend un grand nombre de composants Open Source, tous connectés à un ensemble de modules cœur destinés à capturer, traiter, gérer et analyser d’importants volumes de données. Ces technologies cœur sont :
- Hadoop Distributed File System (HDFS). Ce système de fichiers supporte un directory hiérarchique conventionnel, mais distribue les fichiers sur un ensemble de nœuds de stockage sur un cluster Hadoop.
- MapReduce. Il s’agit d’un modèle de programmation et un framework d’exécution pour traiter en parallèle des applications en mode batch.
- YARN (Yet Another Resource Negociator). Ce module prend en charge l’ordonnancement des tâches (jobs) et alloue les ressources au cluster pour faire fonctionner les applications, et arbitrer quand il y a un conflit de ressources. Il surveille également l’exécution des jobs.
- Hadoop Common. Un ensemble de bibliothèque et outils sur lesquels s’adossent les différents composants.
Dans un cluster Hadoop, ces pièces maîtresses ainsi que les autres modules sont placés au dessus d’un système qui prend en compte le calcul et le stockage, sous la forme de nœuds. Ces nœuds sont connectés via un réseau interne très haut débit pour former un système de traitement distribué et parallélisé.
En tant qu’agrégat de composants Open Source, Hadoop n’est pas contrôlé par un unique fournisseur. Au lieu de cela, son développement est encadré par la Fondation Apache. Celle-ci propose Hadoop sous une licence qui permet aux utilisateurs de l’utiliser gratuitement et sans royalties. Les développeurs peuvent le télécharger directement depuis le site de la Fondation et bâtir eux-mêmes un environnement Hadoop. Toutefois, les fournisseurs Hadoop proposent aussi des versions dites communautaires pré-intégrées, qui comportent des fonctions basiques. Ils commercialisent aussi des distributions Hadoop Entreprise qui associent la solution avec différents niveaux de support et de services de maintenance.
Dans certains cas, les fournisseurs proposent des améliorations de la technologie Apache, comme par exemple, en matière de performance ou fonctionnelles. Cela peut être par exemple en fournissant des outils pour faciliter la configuration ou l’administration ou encore l’intégration de données avec d’autres plateformes. Ces produits commerciaux rendent Hadoop bien plus abordable par les entreprises.
Quels sont les composants d’un stack Hadoop type ?
Mais qu’obtenez-vous lorsque vous avez accès à une distribution commerciale d’Hadoop ? En plus des composants cœur, les distributions types incluent les éléments suivants – sans s’y limiter :
- Des modules alternatifs pour gérer et traiter les données, comme Tez ou Spark qui ont la capacité de s’exécuter au dessus de YARN pour soit administrer le cluster, gérer le cache
- Apache HBase. Un système de gestion de base de données en colonne conçu d’après le projet Big Table de Google et qui fonctionne au dessus de HDFS.
- Les outils de type SQL-On-Hadoop, comme Hive, Impala, Stinger, Drill ou Spark SQL, qui offrent différents degrés de compatibilité avec le standard SQL. Cela permet de requêter directement les données stockées dans HDFS.
- Des outils de développement comme Pig qui permettent de bâtir des applications MapReduce.
- Des outils de configuration et d’administration, comme ZooKepper et Ambari, qui peuvent être utilisés pour le monitoring ou l’administration.
- Des environnements analytiques comme Mahout qui fournit des modèles analytiques pour le Machine Learning, le data mining et l’analyse prédictive.
Parce qu’il s’agit d’une application Open Source, vous ne pouvez pas acheter à proprement dit une distribution Hadoop. En revanche, des fournisseurs vendent des offres de support à l’abonnement annuel avec différents niveaux de SLA. Tous les fournisseurs sont actifs au sein de la communauté Apache, même si chacun est libre de promouvoir ses propres composants add-ons qu’il a lui-même contribué et de les intégrer à sa propre distribution.
Qui gère un environnement Hadoop ?
Il est important de noter que pour obtenir des niveaux de performances adaptés d’un système Hadoop, il est nécessaire de mettre en place une équipe IT expérimentée qui collabore avec l’ensemble de la chaîne : architecture, design, développement, test, déploiement, et équipe opérationnelle et de maintenance. En général, ces équipes IT comprennent :
- Des analystes pour évaluer les besoins en matière de performance par types d’applications qui seront exécutées sur Hadoop
- Des architectes système pour évaluer les bonnes configurations, notamment en matière de hardware
- Des ingénieurs système pour installer, configurer et ajuster les composants Hadoop
- Des développeurs pour concevoir et implémenter les applications
- Des professionnels de la gestion de données pour l’intégration de données par exemple
- Des administrateurs système pour gérer l’opérationnel et la maintenance
- Des chefs de projet pour superviser l’implémentation des différents composants et les travaux de développement
- Des chefs de projet pour superviser l’implémentation de l’environnement Hadoop, gérer les priorités, les développements et le déploiement des applications
Le marché des plateformes Hadoop
L’évolution d’Hadoop en tant que vaste écosystème a aussi provoqué la création d’un nouveau marché qui a transformé l’industrie de la BI et de l’analytique. Cela a par exemple étendu le potentiel applicatif ainsi que les types de données que les entreprises peuvent désormais exploiter dans leurs applications.
Le marché comprend trois véritables pure-players Hadoop : Cloudera, Hortonworks et MapR Technologies. D’autres fournisseurs IT proposent aussi des services et distributions comme IBM, AWS ou encore Microsoft.
Evaluer chaque fournisseur nécessite de comprendre les différences et similitudes autour de deux aspects. D’abord la technologie en elle-même : que comprennent les différentes distributions, quelles plateformes sont supportées, et – plus important – quels composants spécifiques sont poussés par le fournisseur ? Puis, second aspect, le modèle et le service de support : quels sont les types de support et de SLA proposés avec chaque niveau de souscription et, combien coutent-ils.
Au final, bien comprendre ces aspects et leur impact sur vos besoins peut vous permettre de déterminer ce qui est important pour vous.
Traduit et adapté par la rédaction