12 février 2014

Big Data Haddop

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.

2 commentaires :

  1. Bonjour,
    je voudrais savoir, si c'est possible, si l'installation est automatiquement en mode pseudo distribué ?
    Merci

    RépondreSupprimer
  2. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer