ebook img

Professeur-superviseur ALAIN APRIL PATRICK CARDINAL PDF

133 Pages·2017·7.36 MB·French
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Professeur-superviseur ALAIN APRIL PATRICK CARDINAL

RAPPORT TECHNIQUE PRÉSENTÉ À L’ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DANS LE CADRE DU COURS GTI795 / LOG795 – PROJET DE FIN D’ÉTUDES TICKSMITH : INTERFACE CUSTOM ANALYTICS ÉQUIPE 19 YVES MILLETTE – MILY01048700 RICHARD KANTCHIL – KAND18068306 MAXIME PAUL-DEGARIE – PAUM15118907 JEAN-PHILIPPE CHAN – CHAJ29068908 DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI Professeur-superviseur ALAIN APRIL PATRICK CARDINAL MONTRÉAL, 21 AOÛT 2017 ÉTÉ 2017 REMERCIEMENTS Nous tenons à remercier les deux professeurs ayant offert temps et support dans la supervision de notre projet, soit les professeurs Alain April et Patrick Cardinal. Nous tenons également à remercier Tony Bussières et toute son équipe, chez Ticksmith, pour nous avoir permis de réaliser ce projet et nous avoir offert un support continu en plus d’avoir eu la patience de composer avec une équipe peu expérimentée avec les technologies Big Data. TICKSMITH: INTERFACE CUSTOM ANALYTICS YVES MILLETTE – MILY01048700 MAXIME PAUL-DEGARIE – PAUM15118907 RICHARD KANTCHIL – KAND18068306 JEAN-PHILIPPE CHAN – CHAJ29068908 RÉSUMÉ Ce projet de fin d’études du baccalauréat en génie logiciel a été réalisé en partenariat avec l’École de Technologie Supérieure et l’entreprise TickSmith. Ce projet poursuit un projet de fin d’études réalisé à l’automne 2016. Le travail réalisé consiste en l’élaboration d’une interface web permettant à des experts financiers de saisir des formules mathématiques afin de les utiliser pour les exécuter sur des données massives (Big Data) provenant de la bourse. Diverses méthodes ont été explorées pour effectuer une preuve de concept et atteindre cet objectif. La difficulté principale était de trouver et de déployer un prototype logiciel permettant de gérer, en lots, l’exécution de ces formules impliquant des données massives sur une grappe de serveurs hébergés dans un système d’infonuagique d'Amazon, le AWS. TABLE DES MATIÈRES CHAPITRE 1 INTRODUCTION ...........................................................................................2 1.1 Problématique et contexte ..............................................................................................2 1.2 Objectifs du projet..........................................................................................................3 1.3 Méthodologie .................................................................................................................3 1.4 Composition de l’équipe ................................................................................................5 1.5 Livrables ........................................................................................................................6 1.6 Risques ...........................................................................................................................7 1.7 Techniques et outils .......................................................................................................8 CHAPITRE 2 CONTRIBUTION DE MAXIME PAUL-DÉGARIE ...................................11 2.1 Infrastructure Amazon .................................................................................................11 2.2 Installation de déploiement d’applications ..................................................................13 2.3 Automatisation et scripting ..........................................................................................14 CHAPITRE 3 CONTRIBUTION DE JEAN-PHILIPPE CHAN ..........................................16 3.1 Objectif du travail ........................................................................................................16 3.2 Analyzer.scala ..............................................................................................................16 3.3 La requête SQL ............................................................................................................16 3.4 Paramètres JCommander .............................................................................................17 3.5 TickSmithFormulaParser.scala ....................................................................................18 3.6 Exécution avec terminal ...............................................................................................19 3.7 Résultat avec Spark-Shell ............................................................................................21 CHAPITRE 4 CONTRIBUTION DE RICHARD KANTCHIL ...........................................22 4.1 Prototypage de l’interface initiale ................................................................................22 4.2 Création de la dynamique de connexion à MySQL sur AWS RDS ............................23 4.2.1 Amazon Web Service RDS ............................................................................23 4.2.2 Création de la base de données ......................................................................24 4.2.3 Utilisation de JDBC Template .......................................................................24 4.3 Création de services REST et endpoints pour usage des données MySQL .................25 4.3.1 Principes des services REST ..........................................................................25 4.3.2 Implémentation des services d’accès a MySQL ..........................................26 4.4 Gestion de la dynamique d’affichage et de la modification des formules ...................27 4.5 Défis .............................................................................................................................27 4.6 Enseignements .............................................................................................................27 CHAPITRE 5 CONTRIBUTION DE YVES MILLETTE ...................................................28 5.1 Contexte de la contribution ..........................................................................................28 5.2 Choix de la solution à implémenter .............................................................................28 5.2.1 Compilation et exécution d’un fichier « .jar » pour chaque traitement .........28 5.2.2 Utilisation de Cloudera Livy ..........................................................................29 5.2.3 Utilisation de Spark-Jobserver .......................................................................29 5.3 Technologies adjacentes pour l’implémentation .........................................................29 V 5.4 Détails d’implémentation .............................................................................................30 5.4.1 Architecture globale .......................................................................................30 5.4.2 Client http.......................................................................................................31 5.4.3 Interface client ...............................................................................................33 5.5 Autres tâches effectuées ...............................................................................................35 5.5.1 Gestion de projet ............................................................................................35 5.5.2 Architecture globale du projet .......................................................................36 5.6 Pistes d’amélioration ....................................................................................................37 LISTE DE RÉFÉRENCES ......................................................................................................39 BIBLIOGRAPHIE ...................................................................................................................40 CONCEPTION INITIALE DE TICKSMITH .....................................................42 AUTRES LIVRABLES ......................................................................................43 SCRUMS POUR LE PROJET ..........................................................................44 LISTE DES TABLEAUX Tableau 1.1 : Composition de l’équipe ........................................................................................5 Tableau 1.2 : Livrables du projet .................................................................................................6 Tableau 1.3 : Risques du projet ...................................................................................................7 LISTE DES FIGURES Figure 2.1 : Instances dans le tableau de bord AWS .................................................................11 Figure 2.2 : Ligne de commande pour le lancement du cluster EMR .......................................12 Figure 2.3 : Localisation du fichier de bootstrap pour Livy dans S3 .........................................12 Figure 2.4 : Résultat du lancement du script de déploiement ....................................................14 Figure 2.5 : Ligne de commande pour le lancement du cluster EMR .......................................15 Figure 3.1 : Code de traitement des Dataframes et enregistrement ...........................................17 Figure 3.2 : Définition des paramètres JCommander ................................................................18 Figure 3.3 : Configuration HRDS et Hive .................................................................................19 Figure 3.4 : Instances AWS nécessaires ....................................................................................20 Figure 3.5 : Création d’un tunnel SSH ......................................................................................20 Figure 3.6 : Lancement avec spark-submit du fichier .jar .........................................................20 Figure 3.7 : Démarrage d’un spark-shell ...................................................................................21 Figure 3.8 : Résultat dans la table destinataire de l’exécution ...................................................21 Figure 4.1 : Interface bootstrap ..................................................................................................22 Figure 4.2 : REST 26 Figure 5.1 : Architecture de l’implémentation de Livy .............................................................30 Figure 5.2 : Définition de méthodes dans l’interface pour le client Livy ..................................31 Figure 5.3 : Création du client avec l’interface désirée et le convertisseur approprié ...............31 Figure 5.4 : Méthode appelée pour obtenir le registre d’un fil d’exécution sur Livy ................32 Figure 5.5 : Objet représentatif du fil d’exécution à créer. ........................................................32 Figure 5.6 : Documentation de Livy pour le point d’accès de démarrage d’exécution .............33 Figure 5.7 : Interface client améliorée .......................................................................................34 Figure 5.8 : Fonction exécutant un appel AJAX récursif ..........................................................34 VIII Figure 5.9 : Tâches pour le projet sur GitHub ...........................................................................35 Figure 5.10 : Architecture globale du projet ..............................................................................36 LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES AJAX – Asynchronous JavaScript and XML AWS – Amazon Web Services Bootstrap – Cadriciel de développement web pour les interfaces EC2 – Elastic Cloud Compute EMR – Elastic MapReduce HADOOP – Cadriciel pour le traitement de données massives distribuées HTTP – HyperText Transfer Protocol JDBC – Java Database Connectivity jQuery – Cadriciel de développement web JavaScript IMPALA – Moteur de base de données distribué LIVY – Serveur HTTP pouvant démarrer des fil d’exécution Spark-Shell S3 – Amazon Simple Storage Service SCALA – Scalable Language, langage de programmation SPARK - Moteur de traitement de données massives SPRING – Cadriciel Java pour servir des applications Web. RDS – Amazon Relational Database Service REST – Representational state transfer CHAPITRE 1 INTRODUCTION 1.1 Problématique et contexte Ce projet appliqué a été réalisé avec la collaboration de l’entreprise TickSmith, dont les locaux sont situés au 3575 St Laurent Blvd Suite 512, Montréal, QC H2X 2T6. Le projet a été encadré, pour les aspects clients, par Tony Bussières et Luiz Fernando Santos Pereira. La supervision académique du projet a été effectuée par le professeur Alain April et le professeur Patrick Cardinal. Ce projet s’inscrit dans un effort de collaboration continu entre TickSmith et l’École de Technologie Supérieure (ÉTS). Il s’agit du second projet de fin d’études à être réalisé collaborativement avec TickSmith et des étudiants de l’ÉTS. Ce projet s’inscrit dans un effort visant à continuer sur les bases déjà établies par le projet de la session d’automne 2016, réalisé par Philippe Grenier-Vallée et Luiz Fernando Santos Pereira, s’intitulant Big Data, Small Numbers (Grenier-Vallée, 2016). Un prototype logiciel de génération de formules financière avait été élaboré dans le cadre du projet précédent. Ce prototype permet de convertir une formule mathématique, rédigée sous forme de texte, dans un format qui est exécutable par le langage Scala. Ce prototype permet également de créer une représentation visuelle sous forme de formule mathématique formatée grâce au logiciel LaTeX. Quelques formules financières ont également été implémentées en Scala dans le projet précédent pour démontrer la faisabilité de ce concept. Ce projet vise à étendre les fonctionnalités du prototype existant en permettant l’exécution de ces formules sur une grappe AWS (Amazon web services) à l’aide de la technologie EMR (Elastic MapReduce, un service infonuagique, permettant l’usage sur demande de ressources de calcul en ligne. Le prototype actuel a toutefois quelques lacunes. Il est présentement impossible de soumettre des formules pour analyse à partir de l’outil de génération de formules. L’usager ne peut donc rien accomplir présentement avec les formules générées. Ces mêmes formules ne sont d’ailleurs pas encore stockées et conséquemment sont perdues lorsque l’usager quitte le logiciel. Le nombre de formules financières qui peuvent être exécutées est aussi

Description:
Nous tenons à remercier les deux professeurs ayant offert temps et support dans la supervision de notre projet, soit les professeurs Alain April et Patrick Cardinal. Nous tenons également à remercier Tony Bussières et toute son équipe, chez Ticksmith, pour nous avoir permis de réaliser ce pro
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.