RAPPORT TECHNIQUE PRÉSENTÉ À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DANS LE CADRE DU COURS GTI792 BASE DE DONNÉES DISTRIBUÉE APPLIQUÉE EN GÉNÉTIQUE DANS LE CADRE DE L'ANALYSE DE SÉQUENÇAGE GÉNOMIQUE JEAN-PHILIPPE BOND BONJ06048709 DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI Professeur-superviseur Alain April MONTRÉAL, 13 AOÛT 2012 ÉTÉ 2012 REMERCIEMENTS Alain April : Professeur de génie logiciel. Patrice Dion : Analyste des systèmes et réseaux informatiques, département de systèmes éducationnels et de recherche de l’ÉTS. Anna Klos : Diplômée de l’ÉTS en génie logiciel. Ousmane Diallo, B.Sc. : programmeur pour le projet S2D, laboratoire Guy Rouleau, CRCHUM. OPTIMISATION DE RECHERCHE GRÂCE À HBASE SOUS HADOOP JEAN-PHILIPPE BOND BONJ06048709 RÉSUMÉ Ce projet s’insère dans un contexte d’affaires où le Centre de Recherche du Centre Hospitalier de l’Université de Montréal (CRCHUM) est aux prises avec des problèmes avec un système d’identification de gènes et où l’ÉTS est désireuse d’amasser du matériel en vue d’un cours sur le « Cloud Computing ». Le CRCHUM, possédant bien au-delà de 150 millions d’enregistrements de données génomiques, utilise à l’heure actuelle un système permettant d’effectuer des recherches sur des gênes afin de, par exemple, trouver certaines variantes de gènes partageant des similarités. Selon les informations publiées sur le site Web du laboratoire Roueleau, « l’objectif principal du projet Synapse to Disease (de la synapse à la maladie ou S2D) est d’identifier des gènes causants ou prédisposant à des maladies du développement et du fonctionnement neuronal » (http://www.laboguyrouleau.ca/S2D.html). S’appuyant sur une base de données relationnelle conventionnelle, le CRCHUM voit rapidement sa solution atteindre un plateau. En effet, plusieurs de leurs requêtes sont longues à effectuer et ont déjà demandé un remaniement de la base de données important. Leurs responsables voient donc, à l’horizon, un problème dans leur capacité de stocker et effectuer des requêtes efficaces sur les données. Le projet consiste donc à la migration d’une partie du système vers une solution NoSQL. TABLE DES MATIÈRES Page 2.1 Hadoop ...........................................................................................................................5 2.2 Hbase..............................................................................................................................6 3.1 Installation et configuration ...........................................................................................9 4.1 Analyse du système......................................................................................................11 5.1 Schéma .........................................................................................................................16 5.2 Stratégie de requêtes ....................................................................................................18 5.3 MapReduce vs API HBase...........................................................................................21 6.1 Optimisation des performances sur HBase ..................................................................23 7.1 Application cliente .......................................................................................................25 7.2 Application serveur ......................................................................................................26 8.1 Environnement de développement ...............................................................................27 ANNEXE I ÉTAPES À SUIVRE POUR EFFECTUER L’INSTALLATION EN MODE DISTRIBUÉ ...................................................................................................33 ANNEXE II REQUÊTES SQL DU SYSTÈME DU CRCHUM ............................................41 ANNEXE III GESTION DES DÉPENDANCES AVEC MAVEN ........................................43 ANNEXE IV FICHIER ANT ..................................................................................................45 LISTE DES TABLEAUX Page Tableau 1 – Exemple de table HBase ..........................................................................................7 LISTE DES FIGURES Page Figure 1 - Architecture de Hadoop ..............................................................................................5 Figure 2 - Architecture du cluster ..............................................................................................10 Figure 3 - Base de données de système S2D .............................................................................13 Figure 4 - Table HBase ..............................................................................................................17 Figure 5 - Performance du scanneur ..........................................................................................24 Figure 6 - Démonstration de l'application cliente ......................................................................25 Figure 7 - Structure du projet Eclipse ........................................................................................27 LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES API Application Programming Interface ADN Acide désoxyribonucléique CRCHUM Centre de Recherche du CHUM CPU Central Processing Unit GIG GigaByte HDFS Hadoop Distributed File system JPS Java Process Status tool MB MegaByte NoSQL Not only SQL RAM Random Access Memory SGBD Système de gestion de base de données SSH Secure SHell JDK Java Development Kit REST Representational State Transfer RIA Rich Internet Application INTRODUCTION Au cours des dernières années, un nombre impressionnant de nouvelles technologies ont émergé dans le secteur des technologies de l’information. Nous avons assisté au développement d’un nombre marquant de technologies disposé au traitement de « Big Data ». Ce dernier désigne des ensembles de données très volumineux qui sont difficilement exploitables à l’aide des outils classiques de gestion de base de données. Ces nouvelles technologies sont destinées à résoudre ce problème en fournissant les outils nécessaires au développement de solutions logicielles permettant d’exploiter un nombre quasi infini de données. Les perspectives générées par ces technologies sont nombreuses, non seulement pour les entreprises dans le domaine des technologies, mais aussi pour le domaine financier et la science en général. La Biologie est l’un des domaines qui pourront grandement bénéficier de ces avancements technologiques, les scientifiques exerçants dans cette discipline sont quotidiennement confrontés au traitement d’un très grand nombre de données qui ne cessent d’augmenter grâce au progrès continu de cette science. L’arrivée de l’ère « Big Data » est grandement attribuable au développement et au succès qu’ont connu les grandes entreprises du Web depuis les années 2000. On parle ici notamment de Google et Facebook, les problèmes complexes rencontrés par ces entreprises ont forcé le développement de nouvelles technologies pour subvenir aux demandes grandissantes des utilisateurs. Ces technologies sont dorénavant disponibles pour les développeurs, la majorité étant des solutions « open source ». Elles sont de plus en plus matures et faciles à utiliser malgré leur complexité. L’une des solutions les plus populaires est appelée « Hadoop », un «framework » facilitant la construction de systèmes distribués permettant le traitement d’un grand nombre de données. Lors de ce projet, nous nous intéresserons à l’application de base de données distribuée pour l’analyse du séquençage du génome humain. Cette discipline de la Biologie nécessite l’analyse d’un très grand nombre de données. La capacité de traiter un nombre grandissant de 2 données ne peut que favoriser la découverte de nouvelles corrélations entre les éléments analysés et ainsi parvenir à trouver des solutions qui sont jusqu’à maintenant inconnues. En premier lieu, la problématique, le contexte et l’objectif du projet seront présentés. Il y aura ensuite un survol des technologies impliquées ainsi qu’une brève définition expliquant leur fonctionnement. Par ailleurs, la façon d’intégrer et déployer l’ensemble des technologies sur un « cluster » de machines sera expliquée en détail. Suite à l’explication des technologies, nous enchainerons sur la problématique du CRCHUM et les différentes techniques analysées pour migrer vers une base de données HBase. L’ensemble des tests et expérimentations sera présenté tout en expliquant les avantages et les inconvénients de chacune des solutions. Enfin, nous terminerons avec un retour sur le projet et des recommandations pour les développements futurs. CHAPITRE 1 PROBLÉMATIQUE, CONTEXTE ET OBJECTIFS DU PROJET Le projet est réalisé dans le cadre d’une collaboration entre le centre de recherche du centre hospitalier de l’Université de Montréal (CRCHUM) et le professeur Alain April. Il consiste à répliquer une partie de la base de données relationnelle d’un système permettant de faire de l’analyse de séquence d’ADN vers une solution plus flexible qui faciliterait le traitement d’un nombre grandissant de données. Pour ce faire, il a été décidé d’utiliser le « framework » « open source » Hadoop et la base de données qui est déployée sur son système de fichier distribué, HBase. Nous tenterons donc de reproduire la logique d’affaire permettant d’interroger les données de la base de données relationnelle actuelle sur une base de données HBase. L’un des principaux problèmes du logiciel actuel est dû aux limitations des bases de données relationnelles quant au traitement d’un très grand nombre de données. Lorsque la quantité de données voulant être traitées doit être fragmentée pour être stockée sur plusieurs disques, il est difficile de mettre en œuvre une gestion efficace des blocs de données réparties. Par conséquent, il est fréquent d’avoir des problèmes de performances lorsque ce type d’application utilise une base de données relationnelle. Puisque l’un des objectifs du CRCHUM est d’éventuellement être en mesure d’ajouter des données, la migration vers un système utilisant une base de données distribuée serait grandement profitable. Pour parvenir à une solution, plusieurs étapes devront être réalisées. D’abord, nous devrons être en mesure de migrer le modèle de données relationnel vers un modèle non relationnel. Lorsque nous aurons atteint cet objectif, les diverses possibilités pour traiter les données du nouveau modèle seront considérées et expérimentées. Pour vérifier les performances des solutions développées, nous tenterons de faire un comparatif entre le temps d’exécution des requêtes sur HBase par rapport aux temps d’exécution des requêtes sur le système actuel. Pour ce faire, nous mettrons en place en environnement de test sur un cluster de 3 machines.
Description: