La visite des coulisses du Opérationnalisation de la Science des données commence par l’installation des outils et la configuration des machines nécessaires au traitement.
Bien que les distributions se multiplient, la majorité embarque Apache Hadoop. Celui-ci s’impose donc comme le standard de facto pour la mise en place d’un projet Big Data.
Voici comment installer Hadoop et quelles leçons nous avons retirées…
Comme abordé dans un article précédent, pouvoir analyser la masse de données à disposition est une des promesses du marketing Big Data. Avant d’illustrer dans de prochains articles des expérimentations pratiques du Opérationnalisation de la Science des données, nous présentons l’installation de l’infrastructure nécessaire. Bien que de nombreuses distributions facilitent cette installation voici notre retour d’expérience sur l’installation de la version de base Apache Hadoop.
Apache Hadoop est une implémentation Java open source du paradigme Map Reduce. Hadoop est le standard de facto et est embarqué dans la majorité des solutions Big Data actuelles qu’elles soient commerciales ou non.
Le CETIC dispose d’une expertise en Hadoop depuis près de 3 ans, grâce à ses activités de veille technologique et de démonstrateurs autour d’indexeurs et de moteurs de recherche custom. En effet, Hadoop est apparu en tant que sous-projet du projet Apache Nutch, un moteur de recherche open source.
Etape 1 : Installation sur une seule machine – La première étape est de créer une machine virtuelle vide de base ; dans notre cas, Ubuntu server x64 avec 512 Mb de RAM. Sur cette machine virtuelle, les pré-requis sont installés, notamment oracle-java (pour faire tourner Hadoop) ou encore rsync et ssh (pour pouvoir se connecter à distance sur cette machine virtuelle). Ensuite, Apache Hadoop est téléchargé et installé en version 1.1. Les variables d’environnement appropriées sont configurées notamment le PATH et le CLASSPATH. A la fin de cette étape, Hadoop est prêt pour des opérations standalone.
Etape 2 : Configurer la machine en mode pseudo distribué – Cette étape consiste à faire croire à Hadoop qu’il fonctionne sur plusieurs nœuds alors qu’en réalité il ne tourne que sur un seul. Pour cela, des modifications sont apportées aux fichiers de configuration XML de Hadoop. De même, la localisation du NameNode et du JobTracker sont précisées. A la fin de cette étape, Hadoop est prêt à effectuer ses premières opérations Map-Reduce sur le « cluster » constitué d’un seul nœud. Cette étape est utile lorsqu’il faut tester la validité de l’algorithme en cours de développement.
Etape 3 : Mettre en place un cluster Hadoop multi-nœuds – Une fois ce premier nœud correctement configuré, la machine virtuelle, qui sera le nœud maître, est clonée en autant de fois que souhaité et ses clones seront les nœuds esclaves. Enfin, la localisation des nœuds esclaves est précisée au nœud maître et, sur tous les nœuds (maître et esclaves) l’adresse IP et le numéro de port des processus JobTracker et NameNode sont renseignés. A la fin de cette étape, Hadoop est prêt à fonctionner sur un cluster constitué de plusieurs nœuds.
Nous avons utilisé l’exemple du tutoriel dont le but est de générer un nuage de tags à partir de texte.
La figure suivante illustre la configuration obtenue et les définitions sont disponibles dans l’article introductif de la série :
L’installation est simple, mais nécessite des compétences avancées surtout en gestion de réseaux. Elle est facilitée par l’existence de packages DEB et RPM disponibles pour la version 1.1 de Hadoop.
La mise en œuvre sur un exemple bateau comme la génération d’un nuage de mots est aisée, cependant le gain en performance de l’utilisation de Hadoop pour un tel job n’apparaît que sur des datasets de très grande taille, plusieurs dizaines de gigaoctets.
Beaucoup de documentations et de supports autour de Hadoop sont disponibles sur le web, mais il est important de toujours vérifier que les conseils se rapportent à la version de Hadoop installée de même qu’à la distribution du système d’exploitation utilisé et de la version de java installée ; la documentation est vite obsolète à cause de l’effervescence autour du framework.
Enfin, Hadoop est un framework et non une solution ; cela signifie que les opérations qui implémentent le traitement des données (map) et l’agrégation des résultats (reduce) doivent être converties en algorithmes et surtout en code. Nous abordons ces aspects dans la suite de cette série.
Pour plus d’informations, merci de contacter le CETIC.