Hadoop
En 2006, Yahoo! se trouve face à un problème de taille. Son infrastructure WebMap, cette technologie qui construit le graphe du web pour alimenter son moteur de recherche, ne suit plus. Le graphe compte plus de 100 milliards de nœuds et 1 000 milliards d'arêtes. L'infrastructure précédente, baptisée Dreadnaught, a atteint sa limite à 800 machines. Il faut repenser l'architecture de fond en comble pour suivre la croissance du web. Yahoo! fait alors le choix d'Apache Hadoop.
L'histoire débute deux ans plus tôt. En 2004, des chercheurs de Google publient deux articles qui vont tout changer. Ils y décrivent leur système de fichiers et l'architecture MapReduce. Ces publications établissent le socle technique : un système de fichiers distribué capable de stocker d'immenses volumes de données, associé à un modèle pour les traiter en parallèle à grande échelle.
La première version de Hadoop naît au sein du projet Apache Nutch, avant de prendre son indépendance en 2006. Quatre ans plus tard, Google obtient un brevet sur l'algorithme MapReduce, mais accorde une licence à la Fondation Apache Software. Cette décision ouvre la voie à une adoption massive dans l'industrie.
L'architecture initiale repose sur deux piliers. HDFS (Hadoop Distributed File System) gère le stockage distribué des données. MapReduce coordonne l'exécution des tâches de traitement. Un service central, le JobTracker, supervise l'ensemble des opérations, tandis que des TaskTrackers exécutent les tâches sur chaque nœud du cluster.
Cette architecture monolithique révèle vite ses faiblesses. Les développeurs tentent de détourner MapReduce pour des usages auxquels il n'est pas destiné. Certains lancent des tâches map uniquement pour exécuter des serveurs web ou des calculs itératifs. Ces contournements, malgré leur ingéniosité, compromettent la stabilité et l'efficacité du système.
La communauté Apache engage une refonte majeure. YARN (Yet Another Resource Negotiator) voit le jour. Cette nouvelle version sépare la gestion des ressources du modèle de programmation. Un ResourceManager central attribue les ressources du cluster aux applications. Chaque application dispose de son propre ApplicationMaster pour coordonner son exécution.
Cette refonte architecturale transforme l'écosystème. De nouveaux frameworks émergent : Apache Tez pour l'exécution de graphes de tâches, Spark pour le traitement en mémoire, Storm pour le temps réel, Giraph pour le calcul sur les graphes. Les utilisateurs ne sont plus enfermés dans les limitations de MapReduce.
L'adoption de Hadoop dans l'industrie prend une ampleur considérable. Yahoo! déploie YARN sur l'ensemble de ses clusters de production. Le système traite quotidiennement environ 500 000 jobs, représentant plus de 230 années de calcul. Sur un cluster de 2 500 machines, le passage à YARN double l'utilisation CPU moyenne. L'entreprise exécute deux fois plus de tâches qu'auparavant.
Les performances progressent. En 2013, l'implémentation MapReduce sur YARN établit des records dans les benchmarks Daytona et Indy GraySort. Le système trie 1,42 téraoctets de données par minute sur un cluster de 2 100 nœuds. Ces résultats démontrent sa capacité à traiter efficacement des volumes massifs.
L'architecture de Hadoop influence la conception des systèmes distribués modernes. Sa capacité à fonctionner sur du matériel standard, sa tolérance aux pannes et son modèle de programmation simple en font une référence. Le concept de localité des données, où le calcul se déplace vers les données plutôt que l'inverse, sera un principe déterminant de l'informatique distribuée.
Le succès de Hadoop inspire le développement de nombreuses plateformes concurrentes. Twitter crée Mesos, Facebook conçoit Corona, Google élabore Omega. Chaque système apporte ses innovations, mais tous partagent l'héritage architectural de Hadoop : la séparation entre la gestion des ressources et les modèles de programmation.
L'évolution de Hadoop reflète la transformation des besoins en traitement de données. D'un outil spécialisé pour l'indexation du web, il se transforme en plateforme générique supportant une multitude d'applications. Cette transformation s'accompagne d'améliorations continues en matière de performances, de flexibilité et de facilité d'utilisation.
En démontrant la viabilité du traitement distribué à grande échelle sur du matériel standard, Hadoop démocratise l'analyse des données massives. Des entreprises de toutes tailles peuvent désormais construire des infrastructures de traitement de données performantes sans investir dans du matériel spécialisé coûteux. La collaboration entre entreprises, développeurs et chercheurs au sein de la Fondation Apache a permis des avancées rapides et une large diffusion des connaissances.