RAPPORT TECHNIQUE PRÉSENTÉ À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DANS LE CADRE DU COURS LOG792 PROJET DE FIN D’ÉTUDES EN GÉNIE LOGICIEL OPTIMISATION DE RECHERCHE GRÂCE À HBASE SOUS HADOOP ANNA KLOS KLOA22597907 DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI Professeur superviseur ALAIN APRIL MONTRÉAL, 10 AVRIL 2012 HIVER 2012 II REMERCIEMENTS Alain April : Professeur de Génie Logiciel et membre du laboratoire de recherche en génie logiciel à l’ÉTS. Abraham II Gómez Morales : Étudiant au doctorat en « Cloud Computing » à l’ÉTS. Patrice Dion : Analyste des systèmes et réseaux informatiques, département de systèmes éducationnels et de recherche à l’ÉTS. Luis Eduardo Bautista Villalpando : Étudiant au doctorat à l’ÉTS. OPTIMISATION DE RECHERCHE GRÂCE À HBASE SOUS HADOOP ANNA KLOS KLOA22597907 RÉSUMÉ Les environnements de développement pour le projet de l’informatique de nuage sont difficiles à monter faute de manque de documentation, stabilité de leurs composantes logicielles et de leurs complexités. Dans le but de diminuer l’impact de ces contraintes et de faciliter l’accès à un tel environnement, il a été décidé d’utiliser un échantillon des données d’un de centres de recherches en génomiques et de monter un tel environnement. Le problème que ce projet tente de résoudre est de créer un environnement facile à utiliser par des étudiants dans le but de se familiariser avec l’informatique de nuage et des base de donnée non relationnelle tel que HBase. Les résultats obtenus peuvent être utilisés pour un projet futur dans lequel une application client peut être développée pour traduire des requetés SQL vers des requêtes No-SQL et valider si un model non-relationnel est adéquat ou pas. Mots-clés : Base de données relationnelles orienté objet (PostgrSQL), Base de données géantes non-relationnelle (HBase), Cloudera, Hadoop, HDFS, MapReduce, Sqoop. Table des matières INTRODUCTION .....................................................................................................................1 CHAPITRE 1 REVUE DE LA LITTÉRATURE ......................................................................2 1.1 Projet Hadoop d’Apache ................................................................................................2 1.1.1 HDFS : Système distribué de gestion de fichiers.............................................2 1.1.2 Hadoop MapReduce : Framework de transformation de données ...................2 1.2 HBase : Base de données de Hadoop .............................................................................3 1.2.1 La couche de persistance .................................................................................3 1.2.2 Les modes d’exécution ....................................................................................4 1.2.3 Le modèle de données ......................................................................................5 1.2.4 Les opérations supporté par HBase ..................................................................6 1.2.5 Console de HBase ............................................................................................8 1.2.6 Quand utiliser HBase ? ....................................................................................8 1.3 Distribution commercialisé de Hadoop : Cloudera ........................................................9 1.4 Base de données relationnelles orienté objet : PostgreSQL...........................................9 1.5 Sqoop : Utilitaire de transfert de données ......................................................................9 CHAPITRE 2 ENVIRONNEMENT DE DEVELOPPEMENT CLOUDERA SOUS LINUX10 2.1 Installation de Hadoop .................................................................................................10 2.2 Configuration de HBase ...............................................................................................11 2.3 Installation et « restore » de la base de donnée PostgreSQL .......................................11 2.4 XMing – Accès à distance ...........................................................................................12 2.5 FileZilla – Échange de fichiers ....................................................................................12 CHAPITRE 3 MIGRATION DE POSTGRESQL VERS HBASE .........................................13 3.1 Introduction ..................................................................................................................13 3.2 Schéma Actuel de PostgreSQL ....................................................................................14 3.3 Analyse de requêtes problématiques ............................................................................17 3.4 Objectif de la migration de PostgreSQL vers HBase ...................................................18 3.5 Description de la migration de PostgreSQL vers HBase .............................................19 3.5.1 Dénormalisation des données et leurs transfert de PostgreSQL vers HBase .21 3.5.2 Traduction des requêtes problématiques SQL vers HiveQL .........................26 CONCLUSION 28 RECOMMANDATIONS ........................................................................................................30 BIBLIOGRAPHIE ...................................................................................................................31 CHAPITRE 4 BIBLIOGRAPHIE ...........................................................................................31 VI ANNEXE I INSTALLATION ET CONFIGURATION DE L’ENVIRONNEMENT DE DÉVELOPPEMENT HADOOP SUR UN SERVEUR UBUNTU ...............32 Installation de CDH 3 sur un serveur Ubuntu..................................................32 Déploiement de CDH3 en mode autonome « standalone » .........................34 ANNEXE II INSTALLATION ET CONFIGURATION DE HBASE ...................................35 Installation de HBase .............................................................................................35 ANNEXE III INSTALLATION ET CONFIGURATION DE POSTGRESQL SUR UBUNTU .......................................................................................................36 ANNEXE IV INSTALLATION ET CONFIGURATION DE SQOOP ET JDBC DRIVER POUR POSTGRESQL...................................................................................37 ANNEXE V UTILISATION DE XMING ..............................................................................38 LISTE DES TABLEAUX Page Tableau 1 : L'ordre d'enregistrement dans un fichier de HBase ..................................................6 Tableau 2 : Instructions de sauvegarde de données .....................................................................7 Tableau 3 : Instruction de lecture de données ..............................................................................7 Tableau 4 : Requête # 1 - Variant à exclure dans le résultat de recherche ................................17 Tableau 5 : Requête # 2.a - Variant à inclure dans le résultat de recherche en fonction du pipeline de dépistage ..................................................................................17 Tableau 6 : Requête # 2.b - Variant à inclure dans le résultat de recherche pour n’importe lequel pipeline de dépistage .......................................................................18 Tableau 7 : Requête # 3 - Requête problématique .....................................................................18 Tableau 8 : Script de création de vues .......................................................................................21 Tableau 9 : Schéma HBase de la table « test_3_tbl » ................................................................22 Tableau 10 : Script de transfert de PostgreSQL vers HBase via Sqoop ....................................22 Tableau 11 : Schéma HBase de la table « test_3_tbl » ..............................................................24 Tableau 12 : Script de transfert de PostgreSQL vers HBase via Sqoop ....................................24 Tableau 13 : Schéma HBase de la table « test_3_tbl » ..............................................................25 Tableau 14 : Script de transfert de PostgreSQL vers HBase via Sqoop ....................................25 Tableau 15 : PostgreSQL - Requête SQL # 3 ............................................................................26 Tableau 16 : HBase – Requête # 3 traduite avec la commande « SCAN : start/end index» .....26 Tableau 17 : HBase – Requête # 3 traduite avec plusieurs commandes « GET » .....................27 Tableau 18 : Comparaison de temps de réponse d'une requête SQL et d'une requête NoSQL .27 LISTE DES FIGURES Page Figure 1 : Model de programmation "MapReduce" ....................................................................3 Figure 2: La plateforme HBase ....................................................................................................4 Figure 3 : Model de données ........................................................................................................6 Figure 4 : Schéma de l'environnement de développement Cloudera sous Linux ......................11 Figure 5 : Sous-schéma – Pipeline et Algorithme - PostgreSQL ..............................................14 Figure 6 : Sous-schéma - HG 18 et 19 - PostgreSQL ................................................................15 Figure 7 : Sous-schéma – Variant & Coverage – PostgreSQL ..................................................16 Figure 6 : Migration de PostgreSQL vers HBase ......................................................................20 LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES CDH Distribution de Hadoop par Cloudera « Cloudera’s Distribution Including Apache Hadoop » CRCHUM Centre Hospitalier de l’Université de Montréal CRUD Les opérations de manipulation de données « Create, Read, Update, Delete » HBase Base de données de Hadoop « Hadoop Data Base » HDFS Système distribué de gestion de fichiers « Hadoop Distributed File System » JVM Machine virtuelle de Java « Java Virtual Machine » RDBMS Système de gestion de base de données relationnelle « Relational data base management system » SSH Protocole de communication sécurisé « Secure Shell » Sqoop SQL vers Hadoop « SQL-to-Hadoop » VPN Réseau privé virtuel « Virtual private network » LISTE DES SYMBOLES ET UNITÉS DE MESURE MB Mégaoctet « Mégabyte » TB Téraoctet « Terabyte »
Description: