1. Introduction
Hadoop part du principe :
-
Que les approches informatiques classiques, qui consistent à développer des systèmes centralisés toujours plus puissants, disposant de plus de mémoire (ce que les anglophones nomment scaling up), comportent des limites à la fois techniques et financières.
-
Que le développement de systèmes répartis, composés de machines, ou nœuds, relativement abordables financièrement (commodity hardware) et pouvant évoluer par ajout de nouveaux nœuds (ce que les anglophones nomment scaling out), peut constituer une alternative intéressante, à la fois d’un point de vue technique et financier.
-
Qu’un système distribué comportant des dizaines, centaines ou milliers de nœuds sera régulièrement confronté à des pannes matérielles et/ou logicielles.
Yahoo! gère actuellement
le plus grand cluster connu au monde : il comprendrait
plus de 40000 nœuds.
2. Google File System et MapReduce
C’est après avoir constaté que
les approches informatiques classiques peinaient à répondre
de manière satisfaisante à ses besoins que Google
a développé :
-
Le Google File System (GFS), ancêtre du Hadoop Distributed File System (HDFS).
-
L’approche MapReduce.
Lesquels constituent le cœur de Hadoop.
GFS est un système de gestion de
fichiers conçu spécifiquement pour opérer
en environnement distribué avec des applications traitant
des volumes de données très importants. GFS s’adapte
automatiquement aux évolutions matérielles (ajout
ou suppression de machines) et est tolérant aux pannes.
GFS est toujours utilisé par Google, de préférence à HDFS.
MapReduce est un modèle de programmation
conçu spécifiquement pour lire, traiter et écrire
des volumes de données très importants. Un programme
Hadoop met généralement en œuvre à la
fois des tâches de type map et
des tâches de type reduce (cf. chapitre
MapReduce)
Doug Cutting, actuellement Chief Architect
de Cloudera, a été, au début des années 2000, à l’origine
du projet Apache Hadoop, fondé sur les travaux de Google.
Hadoop est 100% open source, et le code source est téléchargeable
sur le site http://hadoop.apache.org/.
3. Hadoop
Hadoop est un système matériel
et logiciel distribué capable de répondre aux
besoins du Big Data, tant au plan technique qu’économique.
Hadoop est capable de stocker et de traiter de manière
séquentielle, et à des coûts "raisonnables",
des volumes de données de plusieurs péta-octets.
Hadoop offre une grande flexibilité (possibilité d’enlever
ou d’ajouter des machines à chaud) et ses performances évoluent
de manière quasi linéaire en fonction du nombre de
machines constituant le cluster.
Hadoop a été écrit
en Java, qui demeure le langage de prédilection pour développer
des programmes Hadoop "natifs" (voir chapitre Développer
des programmes Hadoop). Il est cependant possible, dans certaines
limites, d’écrire des jobs Hadoop en Perl, Python, Ruby…
Dans le sillage de Hadoop, d’autres outils
Big Data sont apparus, parmi lesquels les bases de données
NoSQL (qu’il conviendrait d’ailleurs plutôt d’appeler bases
de données non relationnelles). Sans entrer dans les détails,
car ce n’est pas l’objet de cet ouvrage, on peut par exemple citer
les bases de données orientées graphe, particulièrement
adaptées pour gérer les données de réseaux
sociaux.
Le nom "Hadoop" était initialement
celui d’un éléphant en peluche, jouet favori du
fils de Doug Cutting.
Bonjour,
RépondreSupprimerje voudrais savoir, si c'est possible, si l'installation est automatiquement en mode pseudo distribué ?
Merci
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimer