pic
Dans un précédent post, nous avions vu les grands concepts d’Hadoop (cf. http://www.opensides.fr/2011/03/10/hadoop-en-moins-de-5-minutes).  Aujourd'hui nous allons consacrer 5 nouvelles minutes avec Hadoop pour passer à la pratique. Les objectifs: Monter un environnement opérationnel en moins de 2 minutes Tour d'horizon de Cloudera en 1 minute Tester quelques commandes HDFS en 1 minute Tester un Map Reduce en 1 minute Monter un environnement opérationnel en 2 minutes 30 secondes pour parler de Cloudera Apache distribue une version packagée de l'écosystème complet Had...
pic
Dans ce tutorial, nous allons découvrir Hadoop au travers de son système de fichiers distribués et son mécanisme de Map/Reduce. Objectifs Comprendre les grands concepts de Hadoop Comprendre le HDFS et le mécanisme de Map/Reduce 2 minutes 30 pour comprendre les grands concepts Hadoop est un projet Open Source écrit en java, distribué par la fondation Apache. Ce framework est adapté dans le stockage et le traitement par lots de très grandes quantités de données (à partir du pétaoctet). Il a été mis en avant par des grands noms du web comme Yahoo! ou Facebook. Son sys...
pic
Dans cet article nous allons faire la connaissance rapide des serveurs web asynchrones. Le but de ce post est de vous faire découvrir cette nouvelle génération de serveur en montrant comment installer et configurer de façon basique celui qui me semble le plus aboutit et le plus performant. Nous verrons plus tard tirer profit de ce type d'architecture pour servir de hautes volumétries. Quelques rappels Un serveur http a pour vocation de servir du contenu en fonction des requêtes clientes. Ce contenu est distribué via le protocole http et peut être statique (images, css, javascript, â€...
pic
Tout le monde connaît Memcached ? Non ? Memcached est un cache Open Source distribué et non répliqué. Cela veut dire que que nous pouvons utiliser plusieurs instances de Memcached mais que chaque instance est autonome. Si l'une d'elle tombe, ses données seront donc perdues (pas de réplication entre instance). Pour aller plus loin, je vous conseille le wiki de Memcached: http://memcached.org/ Nous allons voir maintenant comment l'installer sur un unix: Installation de libEvent (une dépendance de Memcached) Vérifier que libEvent ne soit pas déja installé en tapant la ...
pic
Dans cet article nous allons voir comment apporter très facilement une solution de haute disponibilité à une application avec HAProxy. Quelques définitions Haute disponibilité (cf. wikipedia) La haute disponibilité est un terme souvent utilisé en informatique, à propos d'architecture de système ou d'un service pour désigner le fait que cette architecture ou ce service a un taux de disponibilité convenable. La disponibilité est aujourd'hui un enjeu important des infrastructures informatiques. On estime aujourd'hui que la non-disponibilité d'un service informatique peut avoi...
mar

14

Dans un précédent post, nous avions vu les grands concepts d’Hadoop (cf. http://www.opensides.fr/2011/03/10/hadoop-en-moins-de-5-minutes).  Aujourd’hui nous allons consacrer 5 nouvelles minutes avec Hadoop pour passer à la pratique.

Les objectifs:

  1. Monter un environnement opérationnel en moins de 2 minutes
  2. Tour d’horizon de Cloudera en 1 minute
  3. Tester quelques commandes HDFS en 1 minute
  4. Tester un Map Reduce en 1 minute

Monter un environnement opérationnel en 2 minutes

30 secondes pour parler de Cloudera

Apache distribue une version packagée de l’écosystème complet Hadoop. Cette version s’appelle Cloudera: Cloudera’s Distribution for Apache Hadoop (CDH).
Elle est basée sur les dernières versions stables de Hadoop, contient également des patchs additionels. La bonne nouvelle est que Cloudera fournie même une VM, il n’y a donc rien à installer…

Voici son contenu:

  • HDFS – Le système de fichier distribué de Hadoop
  • MapReduce – Le framework de parallelisation des traitements
  • Hadoop Common – Un ensemble d’utilitaire qui supportent les sous projets de Hadoop
  • HBase – La base de donnée NoSQL de Hadoop
  • Hive – Une surcouche au MapReduce offrant un pseudo language SQL pour interagir avec le HDFS
  • Pig – Un language d’analyse des données
  • Oozie – Un système de workflow pour gérer les jobs interdépendant
  • Sqoop – Framework d’intégration des bases de données avec Hadoop
  • Flume – Un système de streaming très efficaces
  • Zookeeper – Un système de coordination des configigurations et des services en environnement distribué
  • Hue – Une interface utilisateur pour gérer les application Hadoop

1 minute 30 pour l’installation

Télécharger  de la VM ici: http://cloudera-vm.s3.amazonaws.com/cloudera-training-0.3.3.tar.bz2?downloads
Detarrer le tout et lancer la VM avec le player VMWare (accessible ici si vous ne l’avez pas encore: http://downloads.vmware.com/d/info/desktop_downloads/vmware_player/3_0)
Attention: VMWare Fusion est payant sous Mac.

On démarre la VM et hop c’est magique nous avons un Ubuntu avec tout l’écosystème Hadoop prêt à l’emploi.

Tour d’horizon de Cloudera en 1 minute

Lorsque l’on démarre la VM, on peut voir le kit de base pour commencer avec Hadoop:

  • un navigateur
  • un Eclipse
  • un terminal
  • un répertoire contenant des instructions

Navigateur

Commençons par ouvrir le navigateur. On peut voir l’interface d’administration web de Hadoop. Cette interface va nous permettre:

- de surveiller les jobs (en cours, terminés, échoué, ..)

- de naviguer dans le système de fichier HDFS

Eclipse

En ouvrant Eclipse, on peut voir qu’un workspace est déja chargé avec un ensemble de projets exemples.

Instructions

Enfin nous pouvons ouvrir le répertoire qui se trouve sur le bureau. On voit que ce répertoire contient un ensemble de tutoriaux et d’exercices pour appréhender le framework.

Tester quelques commandes HDFS en 1 minute

Il est temps de manipuler un peu le système de fichier HDFS. Pour cela, ouvrons un terminal. Commençons par taper  hadoop pour voir l’ensemble des commandes disponibles.

Nous allons utiliser la commande fs qui permet de manipuler le file système: hadoop fs -<commande>

Nous allons pousser un fichier dans le HDFS avec la commande: hadood fs -put README /README

Vérifions maintenant que le fichier est bien présent avec la commande: hadoop fs -ls /

Lisons le contenu du fichier : hadoop fs -tail /README

-> les commandes fs reprennent la syntaxe des commandes shell et pour avoir un détail sur ces commandes, je vous invite à lire la très bonne page man ou d’aller sur la page http://hadoop.apache.org/common/docs/r0.19.2/hdfs_shell.html

Tester un Map Reduce en 1 minute

Passons maintenant au Map Reduce. Pour ça direction Eclipse pour voir si nous trouvons un exemple de MapReduce à tester. Nous pouvons voir que Cloudera nous fourni un ensemble très complet d’exemples. Nous allons donc pouvoir exporter un jar pour le tester directement dans un terminal sur le fichier que nous avons poussé.

Petite note sous Eclipse. Il existe un bug lié à la librairie d’affichage d’Eclipse que les utilisateurs Ubuntu connaissent bien. La parade ? Il suffit de se créer un petit script de lancement:

export GDK_NATIVE_WINDOWS=true

./eclipse

Parmi les exemples exportons le fameux exemple WordCount sous forme de jar executable et lançons le en lui donnant en paramètre un fichier en entrée et une destination en sortie:

Avec la commande hadoop fs -put toto.txt /input/toto, poussons un fichier exemple toto.txt contenant:

a b a

a b b

b c c c

Lançons ensuite notre job:

java -jar sample.jar /user/training/input/toto /output

Et nous obtenons le résultat suivant:

a 3

b 3

c 3

Conclusion

Dans ce post nous sommes passé un peu à la pratique. Nous avons pu faire ça très rapidement grâce à la distribution Cloudera qui permet de démarrer très vite. Pour aller plus loin, je vous conseille de lire les tutoriaux proposés et de regarder les exemples proposés. Dans un prochain post, nous verrons en détail implémentation d’un Map Reduce.

Leave a Reply