Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Riviera Dev, Introduction à Apache Hadoop

21 octobre, 2011

Emmanuel Bastien (@ebastien) travaille chez Amadeus. Apache Hadoop est un framework Map-Reduce Java, qui permet de processe de gros volumes de données. Prenez la taille des disques modernes qui sont énormes, le souci qui nous attend est bien le traitement des volumes de données. Plusieurs serveurs, plusieurs machines, finalement ne serait-il pas plus simple de faire venir l’algorithme de traitement vers la donnée, plutôt que de chercher à traiter à un seul endroit les données ? Le réseau est un goulot d’étranglement.

Emmanuel démarre avec l’exemple d’un indexer de fréquences d’apparition des mots. Quelques lignes unix avec des pipes, finalement on peut par analogie expliquer le fonctionnement de Map et Reduce en quelques lignes.

Une fonction de Map prend en entrée une partie des données, et en sortie retourne une collection de paires clé-valeur. La tâche Reduce va prendre en entrée toutes les valeurs pour une clé et va retourner le résultat final.

La tâche Map doit pouvoir s’exécuter en parrallèle en étant capable de traiter de manière indépendante les données. La tâche Reduce doit agréger les données d’une seule clé. Cela permet de distribuer le traitement.

En pratique, la distribution est est effectuée via HDFS, le file-system partagé d’Hadoop. Un fichier est découpé en bloc de taille fixe de 64Mo. HDFS est donc efficace avec des gros fichiers de données. Chaque bloc de votre fichier est alors alloué sur un data node. Le Name node sert à reconstruire l’ensemble du fichier. Mais attention, HDFS est un système distribué qui cependant ne fait pas de la haute disponibilité. En effet, ce Name Node est un SPOF (Single Point Of Failure).

Concernant la gestion des Jobs, JobTracker et Task Tracker permettent de synchroniser les traitements.

L’API Java d’Hadoop est en Java. Ecrire finalement pour Hadoop est simple. Vous implémentez une class avec l’interface Mapper, une autre classe avec l’interface Reduce, vous construisez un JAR et Hadoop se chargera ensuite de distribuer votre algo sur le cluster.

Vous pouvez aussi faire du streaming avec un binaire pour la partie map, un binaire pour la partie reduce et simplement la définition des entrées et des sorties. Pratique pour tester, mais les performances sont moins bonnes que l’API native Java.

Apache Hive est un langage pseudo-SQL pour générer des jobs Hadoop. Un autre projet, Apache Pig venu de Yahoo! Emmanuel présente ensuite un exemple en Ruby avec Cascading/JRuby. Plus verbeux que Pig, il utilise le même exemple afin de nous montrer les différents types de DSL existants.

Pour terminer nous avons vu une démonstration avec Cloudera. Cette société propose un support et des outils professionnels pour Apache Hadoop.
D’autres services comme Amazon Elastic MapReduce et bientôt le support d’Hadoop sur Microsoft Windows Azure. Le framework est utilisable sur Amazon WS très facilement.

Pour tester Hadoop vous pouvez récupérer une VM sur le site de Cloudera avec l’ensemble des outils d’Hadoop. Pratique si vous voulez simplement regarder.
Tout est sur http://www.cloudera.com

Une présentation simple et intéressante sur Hadoop.

0 no like

Articles similaires:

Hadoop et Elasticsearch, comment indexer vers ES Default ThumbnailIntroduction à Spring Integration Default ThumbnailConférence Riviera DEV à Sophia-Antipolis Default ThumbnailRiviera DEV, DevOps par Henri Gomez

Derniers articles

  • L’instant T où tu poses ta dém…

    Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

    7 likes

    24 octobre, 2024
  • The « Robinson » projection – comprendre son système d’information

    Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

    5 likes

    22 octobre, 2024
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

    Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

    3 likes

    6 octobre, 2024

Mots clés

Apple (32) Architecture (14) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (2) Scala (30) scrum (43) Société (3) Staff Engineer (5) Startup (21) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur X (Twitter) : @nmartignole

Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Reset Password

Le Touilleur Express